一. 模型

当前项⽬的开发, 都是数据驱动的。
以下为影⽚信息管理的数据关系:影⽚和⼈物是 :⼀对多关系

要先分析出项⽬中所需要的数据, 然后设计数据库表

二. 使⽤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、指定外键,一般在“多”的那一个模型类(Interfaces)中定义外键字段
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 film

b、执行迁移脚本

python manage.py migrate film


迁移文件:

c、查询⽣成的SQL语句

python manage.py sqlmigrate film 0001

默认情况下,Django项⽬在sqlite3数据库中创建表。

【django】模型相关推荐

  1. Django模型层Meta内部类详解

    Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.以下对此作一总结: abstract      这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会对应 ...

  2. 4Python全栈之路系列之Django模型

    Python全栈之路系列之Django模型 MTV开发模式 把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的Model-View-Controller(MVC)模式.在这个模式中 ...

  3. Django模型 Q对象实现复杂查找

    2019独角兽企业重金招聘Python工程师标准>>> 转自 http://1boke.sinaapp.com/blog/3/8/ Django模型 Q对象实现复杂查找,对于初学者来 ...

  4. 【Django】MTV(Django)模型

    MTV(Django)模型 MVC模型 MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视 ...

  5. Web开发-Django模型层

    Django模型层 简述 Django框架处理业务的逻辑一般如下(省略图,源于网络,侵删) 可以看到,Django自带了一套ORM机制,这也是Django框架的核心-"全面",将一 ...

  6. Django模型(三)

    Django模型(三) 文章目录 Django模型(三) 一.模型类关系 1.关系字段类型 2.一对多关系 3.多对多关系 二.关联查询 1.通过对象执行关联查询 2.通过模型类执行关联查询 三.自关 ...

  7. Django模型(二)

    Django模型(二) 文章目录 Django模型(二) 一.字段查询 1.查看mysql数据库日志 二.条件运算符 1.查询等 2.模糊查询 3.空查询 4. 范围查询 5. 比较查询 6).日期查 ...

  8. Django模型(一)

    Django模型(一) 文章目录 Django模型(一) 一.配置Django使用mysql数据库 二.案例 1.定义模型类 2.打开booktest/models.py文件 3.迁移 4.测试数据 ...

  9. 第四章:Django 模型 —— 设计系统表

    1. Django框架提供了完善的模型(Model )层来创建和存储数据,每一个模型对应数据库中的唯一的一张表. 2. Django 模型基础知识: .每一本模型是一个Python类,继承了djang ...

  10. Django模型定义参考

    字段 对字段名称的限制 字段名不能是Python的保留字,否则会导致语法错误 字段名不能有多个连续下划线,否则影响ORM查询操作 Django模型字段类 字段类 说明 AutoField 自增ID字段 ...

最新文章

  1. 如何赋能零售行业数字化转型? SAP从这些方向发力
  2. 如何手动重启Jenkins?
  3. 图像传感器与信号处理——自动曝光算法
  4. sql server 提示无法彻底删除_复制-而无法删除数据库或重新配置发布订阅
  5. 用js写出水仙花数,JS 水仙花数
  6. 模拟灰度传感器循迹的程序_灰度传感器的工作原理
  7. 重磅:专门《Vue2.0基础》设计的1套练习题
  8. c语言建立两个磁盘文件,建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作...
  9. yolov4实现口罩佩戴检测,在验证集上做到了0.954的mAP
  10. 每天一个Linux命令(3):ls命令
  11. 快速开发一个混合APP(Hybrid APP)
  12. 关于计算机应用梦想作文,我为梦想而努力700字作文,为梦想而奋斗作文800字
  13. funcode 音乐播放、提示及提示消失、时间显示等(c++版)
  14. php pdo oracle 乱码,php pdo 乱码怎么办
  15. jQuery的动画处理总结 BY:色拉油啊油
  16. 简单行编辑程序设计文档(数据结构)课设
  17. doo14 视图和js的按钮上面的交互
  18. java pdf to jpg_Java pdf和jpg互转案例
  19. JAVA modify是什么意思_java 问题
  20. 2021年A特种设备相关管理(锅炉压力容器压力管道)免费试题及A特种设备相关管理(锅炉压力容器压力管道)复审考试

热门文章

  1. dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传
  2. mysql连接编程环境_C++连接MySQL(一):环境配置和实例
  3. 成功解决ERROR: Could not find a version that satisfies the requirement xgboost (from versions: none) ERR
  4. 成功解决TypeError: 'float' object cannot be interpreted as an integer
  5. 成功解决AttributeError: module 'numpy' has no attribute 'integer'
  6. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测
  7. Apache开源项目
  8. windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法(转载)...
  9. JavaScript---事件详解
  10. The Internals of PostgreSQL