查询集 QuerySet
查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表)
all():返回所有数据。
filter():返回满足条件的数据。
exclude():返回满足条件之外的数据。
order_by():对结果进行排序。
对查询集可以再次调用过滤器进行过滤,如
[Python] 纯文本查看 复制代码
1
|
BookInfo.objects. filter (bread__gt = 30 ).order_by( 'bpub_date' )
|
从SQL的角度讲,查询集与select语句等价,过滤器像where、limit、order by子句。
判断某一个查询集中是否有数据:
exists():判断查询集中是否有数据,如果有则返回True,没有则返回False。
1>惰性执行
创建查询集不会访问数据库,直到调用数据时,才会访问数据库,调用数据的情况包括迭代、序列化、与if合用
例如,当执行如下语句时,并未进行数据库查询,只是创建了一个查询集qs
[Python] 纯文本查看 复制代码
1
|
qs = BookInfo.objects. all ()
|
继续执行遍历迭代操作后,才真正的进行了数据库的查询
[Python] 纯文本查看 复制代码