----查询集是经过筛选出来的对象集合
1.得出查询集的方法(过滤器)
得到一个集合
- all() #得到全部
- filter() #得到符合条件的,经常和isDelete组合使用
- exclude() #得到不符合条件的
- order_by()
- values(): #一个对象构成一个字典,然后构成一个列表返回,用于给网页返回数据
得到的集合可以使用下标来得出一个新的查询集,不会被立即执行
注意:不支持负数索引
如果获取一个对象,直接使用[0],等同于[0:1].get(),但是如果没有数据,[0]引发IndexError异常,[0:1].get()引发DoesNotExist异常得到一个值
- get():返回单个满足条件的对象
- 如果未找到会引发"模型类.DoesNotExist"异常
- 如果多条被返回,会引发"模型类.MultipleObjectsReturned"异常
- count():返回当前查询的总条数
- first():返回第一个对象
- last():返回最后一个对象
- exists():判断查询集中是否有数据,如果有则返回True
2.查询集的特点
惰性执行:创建查询集不会带来任何数据库的访问,直到调用数据时,才会访问数据库
何时对查询集求值:迭代,序列化,与if合用
querylist=Entry.objects.all() #不会访问数据库
print([e.title for e in querylist]) #执行print时才访问数据库
print([e.title for e in querylist])