1查询集表示从数据库获取的对象集合
2查询集可以有多个过滤器
3过滤器就是一个函数,基于所给的参数限制查询集结果
4从sql角度来说,查询集合select语句等价,过滤器就像where条件
查询集
一在管理器上调用过滤器方法返回查询集
二查询集经过过滤器筛选后返回新的查询集,所以可以写成链式调用
三惰性执行 创建查询集不会带来任何数据的访问,直到调用数据时,才会访问数据
四直接访问数据的情况
1 迭代
2 序列化
3与if合用
五返回查询集的方法称为过滤器
1all() 返回查询集中的所有数据
2filter() 1filter(键=值,键=值) 2filter(键=值).filter(键=值)3保留符合 条件的数据4filter(键=值)
3exclude() 过滤掉符合条件的数据
4order——by 排序
5 values 一个字典就是一个对象(字典)返回一个列表
六返回单个数据
1 get() 返回一个满足条件的对象
注意 如果没有找到符合条件的对象,会引发模型类DoesNotExist异常
如果找到多个对象,会引发模型类MultipleObjectsRetumed异常
2count() 返回当前查询集中的对象个数
3first()返回查询集中的第一个对象
4last() 返回查询集中是否有数据,如果有数据返回ture
5exists() 判断查询集中是否有数据,如果有数据返回true
七限制查询集 查询集返回列表,可以使用下标的方法进行限制,等同于sql中的limit语句
studentsList = Students.stuObj2.all()[0:5]
八查询集的缓存 概述 每个查询集都包含一个缓存,来最小化的对数据库访问
在新建的查询集中,缓存首次为空,第一次对查询集求值,会发生数据缓存,django会将查询出来的数据做一个缓存,并返回结构,以后的查询直接使用查询集的缓存