7.5查询集QuerySet&7.6管理器Manager

7.5.1概念

查询集,也称查询结构集、QuerySet,表示从数据库中获取的对象集合

7.5.2获取查询集

all():返回所有数据

filter():返回满足条件的数据

exclude():返回满足条件之外的数据

order_by():对结果进行排序

对查询集可以再次调用过滤器进行过滤

如:

BookInfo.objects.filter(bread__get=30).order_by('bpub_date')

7.5.3两大特性

(1)惰性执行

创建查询集不会访问数据库,直到调用数据时,返回访问数据库,调用数据的情况包括迭代、序列化、与if合用

不会访问数据库: qs = BookInfo.objects.all()

访问数据库:

for book in qs:

print(book.btitle)

(2)缓存

使用同一个查询集,第一次使用时会发生数据库的查询,然后django会把结果缓存下来,再次使用这个查询集时会使用缓存的数据,减少了数据库的查询次数

7.5.4限制查询集

等同于数据库中的limit语句

如:

qs = BookInfo.objects.all()[0:2]

注意:不支持负数索引

7.6管理器Manager

7.6.1概念

管理器是Django的模型进行数据库操作的接口,Django应用的每个模型类都拥有至少一个管理器。

7.6.3管理器对象objects

是模型管理器类Manager自动实例化出来的对象

用于调用模型提供的各种工具方法

7.6.3自定义管理器

(1)注意:一旦为模型类指明自定义的过滤器后,django不再生成默认管理对象objects

(2)自定义管理器需求

当管理器提供的功能无法满足当前需求时,可以自定义管理器,扩充功能

(3)自定义方式

class BookInfoManager(models.Manager):

pass

books = BookInfoManager()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值