Django模型层(各种表及表数据的操作)
目录
1|0一、Django模型层
1|10. django模型层的级联关系
- django 1.x版本默认有级联关系
- django 2.x版本的级联关系需要自己配置
1|21. 配置django测试脚本
- 共有两种配置方式
(1)方式一
- 直接字某一个应用文件夹下的test文件中写下面的内容
- 取manage.py文件中拷贝其前四行代码
- 再自己写两行代码
- 在下面直接写测试的代码即可
(2)方式二
- 直接新建一个任意名称的py文件配置方式一的内容。
1|32. orm表数据的两种增删改
(1)方式一:
- 利用queryset对象的方法
- filter方法查询出来的结果是一个Queryset对象
(2)方式二:
- 利用数据对象本身的方法
1|43. pk关键字和queryset对象特点,orm中打印SQL语句
(1)pk关键字
(2)queryset对象的特点
(3)orm中对数据库操作时打印SQL语句
1|54. orm表单操作必会13条
(1)all()查所有
- 返回的结果QuerySet对象
- 没有参数
- orm语句的查询默认都是惰性查询,只有当你真正要使用数据的时候才会执行orm语句。类似生成器。
(2)filter() 筛选
- 返回的结果QuerySet对象,支持多个关键字参数,并且是and关系
- 根据查询条件得到数据对象可以是多个
- 结果不存在返回空
(3)get() 筛选,不推荐使用
- 获取的是数据对象本身
- 根据查询条件得到数据对象必须是唯一的
- 结果不存在直接报错
(4) first()
- 取queryset对象中第一个数据对象
(5)last()
- 取queryset对象中最后一个数据对象
(6)count()
-
统计数据对象的个数
-
结果是一个数字类型
-
(7)values()
-
获取数据对象中指定的字段的值
-
可以有多个参数
-
得到的是queryset对象,列表套字典的格式
-
(8)values_list()
-
获取数据对象中指定的字段的值
-
可以有多个参数
-
得到的是queryset对象,列表套元组的格式
-
(9)order_by() 排序
-
按照指定的字段排序
-
默认是升序
-
降序 字段前面加负号
-
(10)reverse() 颠倒顺序
-
前提是颠倒的对象必须有顺序(提前排序之后才能跌倒)
-
(11)exclude()
-
排除什么什么之外
-
得到的是queryset对象
-
(12)exists()
-
判断查询结果是否有值,返回结果是一个布尔值
-
该方法其实不需要使用,因为数据本身自带布尔值
-
(13)distinct() 去重
-
对查询结果进行去重操作
-
去重的前提:数据必须是完全相同的情况下才能够去重,包括主键也要相同(你容易忽略主键)
-
1|65. 双下划线查询
- 即有比较运算符的查询
1|76. 模糊查询
-
-
模糊查询实例演示:
1|87. 两表表数据的增删改
(1)以下一对多,多对多使用的模型类如下:
- 图书表和出版社表是一对多的关系,图书表和作者表是多对多的关系,作者和作者详情是一对一的关系。
(2)对象点外键字段
1. 一对多
(1)增
- 向图书表中添加一条记录
(2)改
- 把图书表中主键为1的图书出版社改为publish_id=2对应的出版社
(3)删
- 删除出版社表中主键为1的出版社
2. 多对多表数据的增删改
(1)增
- 用
add()
方法
- 实例:
(2)改
- 用
set()
方法
- 实例:
(3)删
- 用
remove()
方法
- 实例:
(4)清空
-
使用
clear()
方法 -
删除某个数据在第三张表中的所有记录
-
clear清空书籍相关所有记录 括号内不需要传递参数
1|98. 跨表查询
- 两种查询方式:
- 通过对象查询,运用子查询原理
- 通过双下划线,运用联表原理
(1)正反向查询
1. 通过对象查询,即子查询方式
(1)原理
- 子查询(就是分步操作的来查询)
(2)两表子查询实例:
2. 双下划线式联表查询
(1)原理
(2)两表联查实例:
3. 三表及以上联表查询实例:
- 通过外键关系,以顺藤摸瓜式的思想,从一张表到其他表。
__EOF__

本文作者:BigSun丶
本文链接:https://www.cnblogs.com/Mcoming/p/11945533.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Mcoming/p/11945533.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!