05.django升级打怪学习记

迁移文件

*分两步实现

——生成迁移文件

——执行迁移文件

*迁移文件的生成

——根据models文件生成对应的迁移文件

——根据modules和已迁移文件差别 生成新的迁移文件

*执行迁移文件

——先去迁移记录查找,哪些文件未迁移过

*app_label + 迁移文件名字

——执行未迁移的文件

——执行完毕,记录执行过程的迁移文件

——重新迁移

*删除迁移文件

*删除迁移文件产生的表

*删除迁移记录

 

 

 模型关系:

1:1

 

a.应用场景

b.实现:

——使用外键实现的

——对外键添加了唯一约束

 

 

1对1重点

 

pythom manage.py --help

指定在哪个目录中生成

 

指定某个生成迁移文件生成

python manage.py makemigrations --help

 

模型关系

1:1

应用场景:用于复杂表的拆分;扩展新功能

Django中OneToOneFiled:使用的使用,关系声明还有细微差别

实现:使用外键实现的,对外键添加了唯一约束

数据删除:级联表,主表/从表,谁声明关系谁就是从表;在开发中如何确认主从;当系统遭遇不可避免毁灭,只能保留一张表,这个表就是你的主表。

默认特性:

从表数据删除,主表不受影响

主表数据删除,从表数据直接删除

PROTECT保护模式:

*开发中为了防止误操作,我们通常会设置为此模式

*主表如果存在级联数据,删除动作受保护,不能成功

*如果主表不存在级联数据,可以删除成功

 

 

SET

*SET_NULL:允许NULL

*SE_DEFUALT:存在默认值

*SET:指定值

级联数据获取:主获取隐性属性默认就是级联模型的名字;从获取主,就是属性的名字

 

1:M

*ForeignKey

*主从获取:主获取从隐性属性,级联模型_set(student_set Manager的子类)

*all

*filter

*exclude

*Manager上能使用的函数都能使用

*从获取主:显性属性

 

M:N

*实际上最复杂

*开发中很少直接使用多对多属性

*产生表的时候会产生单独的关系表

——关系表中存储级联表的主键,通过多个外键实现的

——多个外键值不能同时相等。

 

在企业钟开发中:

sql->model

a.django也提供了很好的支持

b.python manage.py inspectdb

——可以直接根据表生成模型

——元信息中包含一个属性manage=False

c.如果自己的模型不想被迁移系统管理,也可以使用manage=False进行声明。

-------------------------------------------------------------

静态文件

 

 

逆向使用数据库生成模型

python manage.py inspectdb

python manage.py inspectdb > App/models.py

 

静态文件上传

猜你喜欢

转载自www.cnblogs.com/aixiaoxiaoyu/p/12237326.html