一、概念
查询集,也成为查询结果集,QuerySet,表示从数据库中获取的对象集合。
当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表):
- all():返回所有数据
- filter():返回满足条件的数据
- exclude():返回满足条件之外的数据
- order_by():对结果进行排序
二、两大特性
2.1惰性执行
创建查询集不会访问数据库,直到调用数据时,才会访问那数据库,调用数据的情况包括迭代器的使用
例如,当执行如下语句时,并未进行数据库查询,只是创建了一个查询集books
book = BookInfo.objects.all()
继续执行遍历迭代操作后,财政正的进行了数据库的查询
for book in books:
print(book.name)
2.2缓存
使用同一个查询集,第一次使用时会发生数据库的查询,然后Django会把结果缓存下来,再次使用这个查询集时会使用缓存的数据,减少了数据库的查询次数。
网友评论