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

静态文件上传

原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/12237326.html

时间: 2024-11-13 10:39:07

05.django升级打怪学习记的相关文章

03.django升级打怪学习记

00.模板 在Django框架中,模板是可以帮助开发者快速生成呈现给用户页面的工具. 模板处理: a.加载 b.渲染 模板主要有两个部分 a.HTML静态代码 b.动态插入的代码段(挖坑,填坑) 01.语法 a.模板中的点语法:grades grade 属性或方法:grade.gname 索引:grades.0.gname b.模板中的标签:语法{% tag %} 作用:b1.加载外部传入的变量 b2.在输出中创建文本 b3.控制循环或逻辑 cif语句 {% 表达式 %} 语句 {% elif

06.django升级打怪学习记

缓存 *提升服务响应速度 *将执行过的操作数据存储下来,再一定时间内,再次获取数据的时候,直接从缓存中获取 *比较理想的方案,缓存使用内存级缓存 *Django内置缓存 例子: 缓存底层 获取cache 缓存操作 缓存原理 a.没有缓存 b.有缓存第一次 c.有缓存不是第一次 中间件 中间件切点: AOP中间件: 实现统计功能 *统计IP *统计浏览器 实现权重控制 *黑名单 *白名单 实现反爬 *反爬虫 *实现频率控制 界面友好化 应用交互友好化 中间件 *调用顺序 ——中间件注册的时候是一个

UiAutomator2.0升级填坑记

UiAutomator2.0升级填坑记 SkySeraph May. 28th 2017 Email:[email protected] 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com 啰嗦 Google Android Developers 在2015年3月就发布了UiAutomator 2.0版本(下文简称U2),而公司的核心产品中用到还是UiAutomator老版本(下文简称U1),业界用U2的也不是很多,虽然有诸多问题和不便(如高版本OS中不支持Remo

Django Web开发学习笔记(5)

第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等. 一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在. 例如,Django本身内建有一些app,例如注释系统和自动管理界面. app的一个关键点是它

Django Web开发学习笔记(4)

第四章 模板篇 上一章的内容,我们将HTML的代码和Python代码都混合在了在view.py的文件下.但是这样做的坏处无疑是明显的,引用DjangoBook的说法: 对页面设计进行的任何改变都必须对 Python 代码进行相应的修改. 站点设计的修改往往比底层 Python 代码的修改要频繁得多,因此如果可以在不进行 Python 代码修改的情况下变更设计,那将会方便得多. Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门

Django Web开发学习笔记(1)

一.Python的标准类型 (1)bool型 >>> bool("") False >>> bool(None) False >>> bool(False) False (2)数值型 Python的数值型数据包含两类:int和float型数据,需要注意的是还有一个complex的类型,也就是复数类型 >>> a = complex(1,3) >>> a (1+3j) >>> b

Alex Fung魔方转法学习记

我学了Alex Fung魔方转法,这是一种精确的数学法,且是一种思路,一个系统解决方案,一种原理,不用死记硬背公式. 这是一篇学习记,所有用到的算法必须去原文查看具体的数学公式和Java Applet的演示.因为我还不会编程演示,所以本文不self-contained,而像是一个数学课抄录的笔记,只是记录我的学习过程. 首先,请拿纸和笔——数学公式必须自己写一遍,自己推导一遍,使得自己看到那些符号,心里不发怵,所以写只是为了变得信任眼熟亲切记得. 魔方基础的令人讨厌气噎眼花缭乱终于整个头脑都拧巴

django升级2.1python升级3.7时出现的错误:"trying to load '%s': %s" % (entry[1], e) django.template.library.InvalidTemplateLibrary:

django升级2.1python升级3.7时出现如下的错误: "trying to load '%s': %s" % (entry[1], e) django.template.library.InvalidTemplateLibrary: Invalid template library specified. ImportError raised when trying to load 'crispy_forms.templatetags.crispy_forms_utils':

0040 重构工程(python django升级)

在Python或Django升级后,如果软件要做相应的升级,则需要重构工程. 1 先在CMD下创建工程 2 复制一份虚拟环境目录 Django的虚拟环境,原则上一个工程一个虚拟环境,如果多个工程共享一个虚拟环境,容易报错. 3 PyCharm打开工程,配置虚拟环境 找到File/Settings/Project/Project Interpreter 点击All,查看当前所有的虚拟环境,如果要为工程增加的虚拟环境已经存在,先删除原来的虚拟环境.因为如果有多个相同的虚拟环境,再增加这个虚拟环境,容