一、创建模型类
模型类被创建在"应⽤⽬录
/models.py
"⽂件中。 模型类必须继承⾃
Model
类,位于包
django.db.models
中。 接下来⾸先以"影⽚-⼈物"管理为例进⾏演示。
**1.定义 在
models.py
⽂件中定义模型类。**
from django.db import models
# Create your models here.# 定义模型类classDemo(moldes.Moldes):pass
(1)数据库表名
模型类如果未指明表名,
Django
默认以 ⼩写应⽤名_⼩写模型类名 为数据库表名。
(2)关于主键
django
会为表创建⾃动增⻓的主键列,每个模型只能有⼀个主键列,如果使⽤选项设置某属性为主键列后
django
不会再创建⾃动增⻓的主键列。
默认创建的主键列属性为
id
,可以使⽤
pk
代替,pk全拼为
primary key
。
(3)属性命名限制
不能是
python
的保留关键字。 不允许使⽤连续的下划线,这是由
django
的查询⽅式决定的。 定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下:
属性 = models.字段类型(选项)
2.字段类型说明
3.字段选项说明
null
是数据库范畴的概念,
blank
是表单验证范畴的
4.外键
在设置外键时,需要通过
on_delete
选项指明主表删除数据时,对于外键引⽤表数据如何处理,在
django.db.models
中包含了可选常量:
CASCADE
级联,删除主表数据时连通⼀起删除外键表中数据PROTECT
保护,通过抛出ProtectedError
异常,来阻⽌删除主表中被外键应⽤的数据SET_NULL
设置为NULL
,仅在该字段null=True
允许为null
时可⽤SET_DEFAULT
设置为默认值,仅在该字段设置了默认值时可⽤SET()
设置为特定值或者调⽤特定⽅法DO_NOTHING
不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError
异常
5. 迁移
将模型类同步到数据库中。
(1)⽣成迁移⽂件
python manage.py makemigrations
出现问题1
在项目(
settings.py
同级)目录中
__init__.py
中添加
import pymysql
pymysql.install_as_MySQLdb()
出现问题2
Django
使用
MySQL
数据库需要加载
MySQLdb
模块,需要安装
mysqlclient
,若已经安装请略过。 (
Django2.2
版本之前我们安装的是
pymysql
模块,不过现在使用的
mysqlclient
)
pip install mysqlclient
(2)同步到数据库中(执行迁移文件)
python manage.py migrate
6. 添加测试数据
mysq -h host -u username -p
show databases;
use filmdb;
show tables;
版权归原作者 北极的三哈 所有, 如有侵权,请联系我们删除。