一. 模型
当前项⽬的开发, 都是数据驱动的。
以下为影⽚信息管理的数据关系:影⽚和⼈物是 :⼀对多关系
要先分析出项⽬中所需要的数据, 然后设计数据库表
二. 使⽤Django进⾏数据库开发的提示 :
1、MVT设计模式中的Model,专⻔负责和数据库交互.对应(models.py)
2、由于Model中内嵌了ORM框架,所以不需要直接⾯向数据库编程.
3、⽽是定义模型类,通过模型类和对象完成数据库表的增删改查.
4、ORM框架就是把数据库表的⾏与相应的对象建⽴关联, 互相转换.使得数据库的操作⾯向对象.
三. 使⽤Django进⾏数据库开发的步骤 :
B. 定义模型类
C. 模型迁移
D. 操作数据库
1、定义模型类
a、根据影⽚表结构设计模型类:
模型类:FilmInfo
影⽚名称字段:fname
b、根据⼈物表结构设计模型类:
模型类:PeopleInfo
⼈物姓名字段:uname
⼈物性别字段:gender
外键约束:film
外键要指定所属的模型类
film = models.ForeignKey(FilmInfo)
c、说明 :
影⽚-⼈物的关系为⼀对多. ⼀部影⽚中可以有多个演员.不需要定义主键字段, 在⽣成表时会⾃动添加, 并且值为⾃增⻓
d、定义模型类
说明
1、指定外键,一般在“多”的那一个模型类(PeopleInfo)中定义外键字段
2、ForeignKey第一个参数为必传参数,指定需要关联的父表模型类
3、ForeignKey需要使用on_delete指定级联删除策略
models.CASCADE:当父表数据删除时,相对应的从表数据会自动删除
models.SET_NULL:当父表数据删除时,相对应的从表数据会自动设置为null
models.PROTECT:当父表数据删除时,如果有相对应从表数据会抛出异常
models.SET_DEFAULT:当父表数据删除时,相对应的从表数据会被自动设置为默认值,还需要额外指定default=True
2. 模型迁移 (建表)
a、生成迁移脚本:python manage.py makemigrations 子应用名
python manage.py makemigrations film
b、执行迁移脚本:python manage.py migrate 子应用名
python manage.py migrate film
迁移文件:
c、查询⽣成的SQL语句
python manage.py sqlmigrate film 0001
默认情况下,Django项⽬在sqlite3数据库中创建表。