文章目录
1. 模型
- 1. 模型
- 2 使⽤Django进⾏数据库开发的提示
- 3. 使⽤Django进⾏数据库开发的步骤
- 1. 定义模型类
- 2. 模型迁移 (建表)
影⽚信息表
字段名字段类型字段说明fidAutoField主键fnameCharField影⽚名 fidfname1⾦刚川2夺冠3我和我的家乡⼈物信息表
字段名字段类型字段说明uidAutoField主键unameCharField⼈名genderBooleanField性别filmForeignKey外键 uidunamegenderfilm1张译False12吴京False13巩俐True24⻩渤Fasle3 2 使⽤Django进⾏数据库开发的提示-
MVT设计模式中的Model,专⻔负责和数据库交互.对应(
models.py
) -
由于
Model
中内嵌了ORM
框架,所以不需要直接⾯向数据库编程. -
⽽是定义模型类,通过模型类和对象完成数据库表的增删改查.
-
ORM
框架就是把数据库表的⾏与相应的对象建⽴关联, 互相转换.使得数据库的 操作⾯向对象.
- 定义模型类
- 模型迁移
- 操作数据库
-
根据影⽚表结构设计模型类:
-
- 模型类:FilmInfo
-
- 影⽚名称字段:fname
-
根据⼈物表结构设计模型类:
-
- 模型类:PeopleInfo
-
- ⼈物姓名字段:uname
-
- ⼈物性别字段:gender
-
- 外键约束:film
-
- 外键要指定所属的模型类
book = models.ForeignKey(FilmInfo)
- 外键要指定所属的模型类
-
说明 :
-
- 影⽚-⼈物的关系为⼀对多. ⼀部影⽚中可以有多个演员.
-
- 不需要定义主键字段, 在⽣成表时会⾃动添加, 并且值为⾃增⻓. 根据数据库表的设计
# film / models.py
from django.db import models
# Create your models here.
# 影⽚信息模型类
class FilmInfo(models.Model):
fid = models.AutoField(primary_key=True)
fname = models.CharField(max_length=20)
# 创建⼈物信息模型类
class PeopleInfo(models.Model):
uid = models.AutoField(primary_key=True)
uname = models.CharField(max_length=10)
gender = models.BooleanField()
# 外键约束:⼈物属于哪部影⽚
film = models.ForeignKey(FilmInfo,on_delete=models.CASCADE)
2. 模型迁移 (建表)
迁移由两步完成 :
创建迁移文件前
⽣成迁移⽂件:根据模型类⽣成创建表的语句
python manage.py makemigrations film
执⾏迁移⽂件:根据第⼀步⽣成的语句在数据库中创建表
python manage.py migrate
查询⽣成的SQL语句
$ python manage.py sqlmigrate film 0001
默认情况下,Django
项⽬在sqlite3
数据库中创建表。