0
点赞
收藏
分享

微信扫一扫

Django快速上手总结

海牙秋天 2022-11-29 阅读 74


网站配置

  1. 上线环境中,在mysite/settings.py下 debug模式关闭,并且在allowed_hosts中填写主域名,这样才能通过域名访问到网站。
  2. 所有app需要注册在installed_apps下。
  3. 需要更改数据库设置的话在settings.py下的:databases
  4. 如需更嗨语言为汉语:LANGUAGE_CODE设置为’zh-hans’;时区设置为东八区:‘Asia/Shanghai’

数据库选择

主要在mysql和sqlite中 选择,sqlserver暂不考虑。(采用user用户数据插入实验)

  1. 几百条数据时sqlite有优势;
  2. 上千条数据时,相差不大,mysql小优势胜出;
  3. 上万数据时,mysql优势明显,sqlite速度慢上近十倍;
  4. sqlserver和mysql性能相差不大;

网站配置

  1. 上线环境中,在mysite/settings.py下 debug模式关闭,并且在allowed_hosts中填写主域名,这样才能通过域名访问到网站。
  2. 所有app需要注册在installed_apps下。
  3. 需要更改数据库设置的话在settings.py下的:databases
  4. 如需更嗨语言为汉语:LANGUAGE_CODE设置为’zh-hans’;时区设置为东八区:‘Asia/Shanghai’

数据库选择

主要在mysql和sqlite中 选择,sqlserver暂不考虑。(采用user用户数据插入实验)

  1. 几百条数据时sqlite有优势;
  2. 上千条数据时,相差不大,mysql小优势胜出;
  3. 上万数据时,mysql优势明显,sqlite速度慢上近十倍;
  4. sqlserver和mysql性能相差不大;

Django快速上手总结_数据

数据层

一:数据模型类models.MODEL

  1. class Meta:Model 元数据就是 “不是一个字段的任何数据” – 比如排序选项, admin 选项等等.
  2. 常用的数据类型
  1. 短文本:models.CharField(max_length=300)
  2. 长文本:models.TextField()
  3. 时间类型:models.DateTimeField(default = timezone.now)
  4. 外键:models.ForeignKey(User, related_name=“bolg_posts”)

二:根据MODEL建立数据库表

  1. 在project目录下(如mysite/)执行:python manage.py makemigrations
  2. 上述命令会自动在数据模型model所在的app目录下创建migrations文件夹,并且翻译model为数据库可识别形式;
  3. 上述命令的功能是创建数据库表,表名为:appname_modelname
  4. id字段自动生成为主键

二:建立视图函数views.py

实例:

from django.shortcuts import render, get_object_or_404
from .models import BlogArticles

def blog_title(request):
blogs = BlogArticles.objects.all()
return render(request, "blog/titles.html", {"blogs":blogs})

def blog_article(request, article_id):
#rticle = BlogArticles.objects.get(id=article_id)
article = get_object_or_404(BlogArticles, id=article_id)
pub = article.publish
return render(request, "blog/content.html", {"article":article, "publish":pub })

  1. render()的作用是将数据渲染到指定模板上
  2. request是必传参数

创建HTML模板

一个简单模板

{% extends "base.html" %}
{% block title %}blog titles{% endblock %}
{% block content %}
<div class="row text-center vertical-middle-sm">
<h1>我的博客</h1>
</div>
<div class="row">
<div class="col-xs-12 col-md-8">
<ul>
{% for blog in blogs %}
<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
{% endfor %}
</ul>
</div>
<div class="col-xs-6 col-md-4">
<h2>广告</h2>
<p>跟老齐学:www.itdiffer.com</p>
<img width="200px" src="http://img1.cache.netease.com/catchpic/B/B7/B72167D1B28CAD51AC801BAF79317DE4.jpg">
</div>
</div>
{% endblock %}a

  1. {{ blog.title }}双大括号表示这是对象的引用数据,否则只会照样输出。
  2. for语句:

{% for blog in blogs %}
<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
{% endfor %}

  1. if语句:

从零开撸Django

第一步创建项目:
django-admin startproject mysite (启动python manage.py runserver)

第二步创建项目应用:
python manage.py startapp blog(Pycharm有一个非常实用的快捷键:option+r,可直接进入manage.py的命令窗口)

第三步
在Django的配置文件中进行注册,注册名为应用名,至此一个app有了!

第四步
开始为这个空app写点东西,比如一个博客。首先你得心中有博客的数据类型。博客我主要设置四个参数:博文/作者/标题/发布时间,即title,auther,body,publish;Django的数据类型类都必须继承django.db里的models.MODEL类
models.TextField()
models.CharField()
models.DateTimeField()
models.ForeignKey()映射

第五步
Django采用ORM对象关系映射,数据类型通过migrate转为sql语句进行实际上的创建。
python manage.py makemigrations(根据model类以sql语句形式创建数据库表)
python manage.py migrate(真正创建数据库)
至此,数据库有了,数据对象也有了。

第六步:
博客需要发布文章,新手入门先复用Django自带的管理功能发布文章。使用自带的功能首先需要创建超级博客需要发布文章,新手入门先复用Django自带的管理功能发布文章。使用自带的功能首先需要创建超级用户用户:python manage.py createsuperuser.
进入Django自带的管理面板中是看不到我们自建的blog的model数据类型的,需要在自带系统里进行注册。注册方式:在应用的admin文件中引入django.contrib库中的admin类,然后注册:adminn.site.registe(BlogArticles)

数据层

一:数据模型类models.MODEL

  1. class Meta:Model 元数据就是 “不是一个字段的任何数据” – 比如排序选项, admin 选项等等.
  2. 常用的数据类型
  1. 短文本:models.CharField(max_length=300)
  2. 长文本:models.TextField()
  3. 时间类型:models.DateTimeField(default = timezone.now)
  4. 外键:models.ForeignKey(User, related_name=“bolg_posts”)

二:根据MODEL建立数据库表

  1. 在project目录下(如mysite/)执行:python manage.py makemigrations
  2. 上述命令会自动在数据模型model所在的app目录下创建migrations文件夹,并且翻译model为数据库可识别形式;
  3. 上述命令的功能是创建数据库表,表名为:appname_modelname
  4. id字段自动生成为主键

二:建立视图函数views.py

实例:

from django.shortcuts import render, get_object_or_404
from .models import BlogArticles

def blog_title(request):
blogs = BlogArticles.objects.all()
return render(request, "blog/titles.html", {"blogs":blogs})

def blog_article(request, article_id):
#rticle = BlogArticles.objects.get(id=article_id)
article = get_object_or_404(BlogArticles, id=article_id)
pub = article.publish
return render(request, "blog/content.html", {"article":article, "publish":pub })

  1. render()的作用是将数据渲染到指定模板上
  2. request是必传参数

创建HTML模板

一个简单模板

{% extends "base.html" %}
{% block title %}blog titles{% endblock %}
{% block content %}
<div class="row text-center vertical-middle-sm">
<h1>我的博客</h1>
</div>
<div class="row">
<div class="col-xs-12 col-md-8">
<ul>
{% for blog in blogs %}
<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
{% endfor %}
</ul>
</div>
<div class="col-xs-6 col-md-4">
<h2>广告</h2>
<p>跟老齐学:www.itdiffer.com</p>
<img width="200px" src="http://img1.cache.netease.com/catchpic/B/B7/B72167D1B28CAD51AC801BAF79317DE4.jpg">
</div>
</div>
{% endblock %}a

  1. {{ blog.title }}双大括号表示这是对象的引用数据,否则只会照样输出。
  2. for语句:

{% for blog in blogs %}
<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
{% endfor %}

  1. if语句:

总结

从零开撸Django

第一步创建项目:
django-admin startproject mysite (启动python manage.py runserver)

第二步创建项目应用:
python manage.py startapp blog

第三步
在Django的配置文件中进行注册,注册名为应用名,至此一个app有了!

第四步
开始为这个空app写点东西,比如一个博客。首先你得心中有博客的数据类型。博客我主要设置四个参数:博文/作者/标题/发布时间,即title,auther,body,publish;Django的数据类型类都必须继承django.db里的models.MODEL类
models.TextField()
models.CharField()
models.DateTimeField()
models.ForeignKey()映射

第五步
Django采用ORM对象关系映射,数据类型通过migrate转为sql语句进行实际上的创建。
python manage.py makemigrations(根据model类以sql语句形式创建数据库表)
python manage.py migrate(真正创建数据库)
至此,数据库有了,数据对象也有了。

第六步:
博客需要发布文章,新手入门先复用Django自带的管理功能发布文章。使用自带的功能首先需要创建超级博客需要发布文章,新手入门先复用Django自带的管理功能发布文章。使用自带的功能首先需要创建超级用户用户:python manage.py createsuperuser.
进入Django自带的管理面板中是看不到我们自建的blog的model数据类型的,需要在自带系统里进行注册。注册方式:在应用的admin文件中引入django.contrib库中的admin类,然后注册:adminn.site.registe(BlogArticles)


举报

相关推荐

0 条评论