Django 创建应用和定义数据表
1、Django 创建应用
Django 项目是基于 Django 框架开发的 web 应用,包含了一组配置和多个应用,把应用称为app,auth和admin等都属于app
输入python manage.py startapp 应用名 即可创建一个子应用
admin.py :用于将 Model 定义的数据表 注册到管理后台,是Django Admin 应用的配置文件
apps.py:用于应用程序本身的属性配置
model.py :用于定义应用中所需要的数据表
tests.py :文件用于编写当前应用程序的单元测试
views.py:用于定义视图处理函数的文件
migrations 目标用于存储数据库迁移时生成的文件,该目录下的 __init__.py 文件标识migrations 是一个python 包
__init__.py:标识该子应用是一个python 包
在 setting.py 中 添加子应用
2、Django ORM
ORM(Object Realtional Mapping)即对象关系映射, 是一种基于关系型数据库的程序技术。ORM 允许你使用类和对象对数据库进行操作,这大大提高了对数据库的控制,避免了直接使用 SQL 语句对数据库的操作
模型类:本质上属于一个 Python 类,只不过在Django 中称之为模型类,它是由 django.db.models.Model 派生出的子类;可以理解为Django 中模型类就相当于 ORM 模型类
定义数据表:类属性即为数据表的字段
每一个应用下的数据库模型类,需要在当前应用下的model.py 这个文件中定义数据库模型
定义规则如下:
一个数据库模型类需要继承 Model 或者 Model 的子类
默认会创建一个自动递增的 id 主键
默认创建的数据库名为,应用名小写_数据库模型类小写
一个数据库模型类相当于一个数据表(Table)
定义的一个类属性,相当于数据库表中的一个字段
max_length为字段的最大长度,unique 参数用于设置当前字段是否唯一,默认 unique= False
verbose_name 用于设置自定义的字段名
help_text 用于api 文档的一个中文名称
null 设置数据库中此字段允许为空,blank 用于设置前段可以不用传递,default设置默认值
定义子类 Meta ,用于设置当前数据模型的元数据信息
创建外键,关联两个数据表
在子表中调用 models.ForeignKey ()关联父表,如,一个项目中 有多个接口,则在接口表中关联父表,规则如下:
第一个参数为关联的模型路径(应用名 . 模型类)或者模型类
第二个参数 为当夫表删除之后,该字段的处理方式,on_delete = models.CASCADE
CASCADE:子表也会被删除
SET_NULL:当前外键值会被设置为 None
PROJECTS:删除后,会报错
SET_DEFAULT:设置默认值,同时需要指定默认值,null =True