setting相关
# 设置mysql数据库:DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 数据库引擎'NAME': 'for_django', # 你要存储数据的库名,事先要创建之'USER': 'root', # 数据库用户名'PASSWORD': 'root', # 密码'HOST': 'localhost', # 主机'PORT': '3306', # 数据库使用的端口}}# 设置中文LANGUAGE_CODE = 'zh-hans'# 设置时区TIME_ZONE = 'Asia/Shanghai'# 允许所有hostsALLOWED_HOSTS = ["*"]
路由相关
# appname/appname/urls.pyfrom django.urls import path, includeurlpatterns = [path('projectname/', include('projectname.urls')),...]# appname/projectname/urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [path('', views.index, name='index'),]
model相关
from django.db import modelsclass Question(models.Model):question_text = models.CharField(max_length=200)published_date = models.DateTimeField('date published')class Meta():db_table = 'forksir_question' # 定义表名verbose_name_plural = '1.问题' # 定义管理界面表标题def __str__(self):return self.question_text # 设置默认输出的表字段
Field和字段:
- AutoField: 一个根据实际ID自动增长的IntegerField,通常不指定;如果不指定,一个主键字段将自动添加到模型中
 - BooleanField: true/false 字段,此字段的默认表单控制是CheckboxInput
 - NullBooleanField: 支持null、true、false三种值
 - CharField: (max_length=字符长度): 字符串,默认的表单样式是 TextInput
 - TextField: 大文本字段,一般超过4000使用,默认的表单控件是Textarea
 - IntegerField: 整数
 - DecimalField: (max_digits=None, decimal_places=None) 使用python的Decimal实例表示的十进制浮点数;DecimalField.max_digits=位数总数,DecimalField.decimal_places=小数点后的数字位数
 - FloatField: 用Python的float实例来表示的浮点数
 - DateField[auto_now=False, auto_now_add=False]): 使用Python的datetime.date实例表示的日期;参数DateField.auto_now:每次保存对象时,自动设置该字段为当前时间,用于”最后一次修改”的时间戳,它总是使用当前日期,默认为false;参数DateField.auto_now_add:当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false;该字段默认对应的表单控件是一个TextInput. 在管理员站点添加了一个JavaScript写的日历控件,和一个“Today”的快捷按钮,包含了一个额外的invalid_date错误消息键;auto_now_add, auto_now, and default 这些设置是相互排斥的,他们之间的任何组合将会发生错误的结果
 - TimeField: 使用Python的datetime.time实例表示的时间,参数同DateField
 - DateTimeField: 使用Python的datetime.datetime实例表示的日期和时间,参数同DateField
 - FileField: 一个上传文件的字段
 - ImageField: 继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image
 
通过字段选项,可以实现对字段的约束;在字段对象时通过关键字参数指定。
- null: 如果为True,Django 将空值以NULL 存储到数据库中,默认值是 False
 - blank: 如果为True,则该字段允许为空白,默认值是 False;对比:null是数据库范畴的概念,blank是表单验证证范畴的
 - db_column: 字段的名称,如果未指定,则使用属性的名称
 - db_index: 若值为 True, 则在表中会为此字段创建索引
 - default: 默认值
 - primary_key: 若为 True 则该字段会成为模型的主键字段
 - unique: 如果为 True, 这个字段在表中必须有唯一值;唯一索引
 - auto_now: 创建时生成创建时间
 - auto_now_add: 更新时自动更新当前时间
 - choices: admin: 默认元组列表,user_type=[(1, “普通用户”), (2, “VIP用户”), (3, “超级用户”)];modesl.IntegerField(choices=user_type);在admin中会自动显示这几个分类,但是对表无影响,可以是任意整数
 - verbose_name: admin: 别名,支持中文
 - editable: admin: 是否可以被编辑
 - error_message: admin: 自定义错误信息
 - help_text: admin: 帮助信息
 
Django命令
- 启动开发服务器 
python manage.py runserver - 运行 
python manage.py migrate来应用数据库迁移 - 对模型文件修改项进行迁移 
python manage.py sqlmigrate [projectname] - 运行 
python manage.py makemigrations为模型的改变生成迁移文件 - 创建管理员账号 
python manage.py createsuperuser 
