【django】模型
一. 模型
当前项⽬的开发, 都是数据驱动的。
以下为影⽚信息管理的数据关系:影⽚和⼈物是 :⼀对多关系
要先分析出项⽬中所需要的数据, 然后设计数据库表
二. 使⽤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】模型相关推荐
- Django模型层Meta内部类详解
Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.以下对此作一总结: abstract 这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会对应 ...
- 4Python全栈之路系列之Django模型
Python全栈之路系列之Django模型 MTV开发模式 把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的Model-View-Controller(MVC)模式.在这个模式中 ...
- Django模型 Q对象实现复杂查找
2019独角兽企业重金招聘Python工程师标准>>> 转自 http://1boke.sinaapp.com/blog/3/8/ Django模型 Q对象实现复杂查找,对于初学者来 ...
- 【Django】MTV(Django)模型
MTV(Django)模型 MVC模型 MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视 ...
- Web开发-Django模型层
Django模型层 简述 Django框架处理业务的逻辑一般如下(省略图,源于网络,侵删) 可以看到,Django自带了一套ORM机制,这也是Django框架的核心-"全面",将一 ...
- Django模型(三)
Django模型(三) 文章目录 Django模型(三) 一.模型类关系 1.关系字段类型 2.一对多关系 3.多对多关系 二.关联查询 1.通过对象执行关联查询 2.通过模型类执行关联查询 三.自关 ...
- Django模型(二)
Django模型(二) 文章目录 Django模型(二) 一.字段查询 1.查看mysql数据库日志 二.条件运算符 1.查询等 2.模糊查询 3.空查询 4. 范围查询 5. 比较查询 6).日期查 ...
- Django模型(一)
Django模型(一) 文章目录 Django模型(一) 一.配置Django使用mysql数据库 二.案例 1.定义模型类 2.打开booktest/models.py文件 3.迁移 4.测试数据 ...
- 第四章:Django 模型 —— 设计系统表
1. Django框架提供了完善的模型(Model )层来创建和存储数据,每一个模型对应数据库中的唯一的一张表. 2. Django 模型基础知识: .每一本模型是一个Python类,继承了djang ...
- Django模型定义参考
字段 对字段名称的限制 字段名不能是Python的保留字,否则会导致语法错误 字段名不能有多个连续下划线,否则影响ORM查询操作 Django模型字段类 字段类 说明 AutoField 自增ID字段 ...
最新文章
- 如何赋能零售行业数字化转型? SAP从这些方向发力
- 如何手动重启Jenkins?
- 图像传感器与信号处理——自动曝光算法
- sql server 提示无法彻底删除_复制-而无法删除数据库或重新配置发布订阅
- 用js写出水仙花数,JS 水仙花数
- 模拟灰度传感器循迹的程序_灰度传感器的工作原理
- 重磅:专门《Vue2.0基础》设计的1套练习题
- c语言建立两个磁盘文件,建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作...
- yolov4实现口罩佩戴检测,在验证集上做到了0.954的mAP
- 每天一个Linux命令(3):ls命令
- 快速开发一个混合APP(Hybrid APP)
- 关于计算机应用梦想作文,我为梦想而努力700字作文,为梦想而奋斗作文800字
- funcode 音乐播放、提示及提示消失、时间显示等(c++版)
- php pdo oracle 乱码,php pdo 乱码怎么办
- jQuery的动画处理总结 BY:色拉油啊油
- 简单行编辑程序设计文档(数据结构)课设
- doo14 视图和js的按钮上面的交互
- java pdf to jpg_Java pdf和jpg互转案例
- JAVA modify是什么意思_java 问题
- 2021年A特种设备相关管理(锅炉压力容器压力管道)免费试题及A特种设备相关管理(锅炉压力容器压力管道)复审考试
热门文章
- dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传
- mysql连接编程环境_C++连接MySQL(一):环境配置和实例
- 成功解决ERROR: Could not find a version that satisfies the requirement xgboost (from versions: none) ERR
- 成功解决TypeError: 'float' object cannot be interpreted as an integer
- 成功解决AttributeError: module 'numpy' has no attribute 'integer'
- DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测
- Apache开源项目
- windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法(转载)...
- JavaScript---事件详解
- The Internals of PostgreSQL