Django dayEight 数据库操作 、 QuerySet、ORM 迁移命令

1.QuerySet API

我们通常做查询操作的时候,都是通过模型名字.objects的⽅式进⾏操作。其实
模型名字.objects是⼀个django.db.models.manager.Manager对象,⽽
Manager这个类是⼀个“空壳”的类,他本身是没有任何的属性和⽅法的。他的
⽅法全部都是通过Python动态添加的⽅式,从QuerySet类中拷⻉过来的

在这里插入图片描述
所以我们如果想要学习ORM模型的查找操作,⾸先要学会QuerySet上的⼀些
API的使⽤。

QuerySet的⽅法
在使⽤QuerySet进⾏查找操作的时候,可以提供多种操作。⽐如过滤完后还要
根据某个字段进⾏排序,那么这⼀系列的操作我们可以通过⼀个⾮常流畅的链
式调⽤的⽅式进⾏。⽐如要从⽂章表中获取标题为123,并且提取后要将结果根
据发布的时间进⾏排序,那么可以使⽤以下⽅式来完成
可以看到order_by⽅法是直接在filter执⾏后调⽤的。这说明filter返回的对象是
⼀个拥有order_by⽅法的对象。⽽这个对象正是⼀个新的QuerySet对象。因此
可以使⽤order_by⽅法。

在这里插入图片描述

可以看到order_by⽅法是直接在filter执⾏后调⽤的。这说明filter返回的对象是
⼀个拥有order_by⽅法的对象。⽽这个对象正是⼀个新的QuerySet对象。因此
可以使⽤order_by⽅法。
那么以下将介绍在那些会返回新的QuerySet对象的⽅法。
其实,filter 和 exclude 正好相反
在这里插入图片描述
在这里插入图片描述
举例:order_by
在这里插入图片描述
倒叙 就是用-price
在这里插入图片描述
价格一样时,按照id 排序
在这里插入图片描述
关联查询
在这里插入图片描述
values
在这里插入图片描述
因为上述是取出了所有字典信息,只是对象,所以要如下取数据可用, 用.ge’t
在这里插入图片描述
values 可以指定字段来查询呢,节省数据库性能
在这里插入图片描述
values_list
在这里插入图片描述
元组 用下标 取

在这里插入图片描述
create
直接 配合objects 插入一条数据库数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
举例:
get_or_create没查询出数据就创建
在这里插入图片描述
exsits
与之前几个方式不同,它会限制一条数据,不会都显示出来。
节省性能
在这里插入图片描述

update是在mysql中执行,不会更新auto_now设置的字段

切片,也节省了数据库性能开销
在这里插入图片描述

2. ORM 迁移命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面的迁移,都是按照后者依赖前者的逻辑,中间任何一个删除都会出错

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值