Django的简单使用( 五 )

# 例:查询id不等于3图书的信息 。BookInfo.objects.filter(~Q(id=3))8. 聚合函数作用:对查询结果进行聚合操作 。
sum count avg max min
aggregate:调用这个函数来使用聚合 。返回值是一个字典
使用前需先导入聚合类:
from django.db.models import Sum,Count,Max,Min,Avg# 例:查询所有图书的数目 。BookInfo.objects.all().aggregate(Count('id')){'id__count': 5}# 例:查询所有图书阅读量的总和 。BookInfo.objects.aggregate(Sum('bread')){'bread__sum': 126}count函数 返回值是一个数字
作用:统计满足条件数据的数目 。
# 例:统计所有图书的数目 。BookInfo.objects.all().count()BookInfo.objects.count()# 例:统计id大于3的所有图书的数目 。BookInfo.objects.filter(id__gt=3).count()小结:
查询相关函数get :返回一条且只能有一条数据,返回值是一个对象 , 参数可以写查询条件 。
all :返回模型类对应表的所有数据,返回值是 Oueryset。
filter :返回满足条件的数据 , 返回值是 Oueryset  , 参数可以写查询条件 。
exclude :返回不满足条件的数据 , 返回值是 Oueryset  , 参数可以写查询条件 。
order _ by :对查询结果进行排序 , 返回值是 Queryset,参数中写排序的字段 。
注意:

  1. get , filter , exclude 函数中可以写查询条件,如果传多个参数,条件之间代表且的关系 。
  2. all,filter , exclude , order _ by 函数的返回值是 Queryset 类的实例对象, 叫做查询集.
from django.db.models import F,Q,Sum,Count,Avg,Max,Min
F对象:用于类属性之间的比较 。Q对象:用于条件之间的逻辑关系 。
aggregate :进行聚合操作,返回值是一个字典,进行聚合的时候需要先导入聚合类 。count :返回结果集中数据的数目,返回值是一个数字 。
注意:对一个 Oueryset 实例对象,可以继续调用上面的所有函数 。
参考文档:
python.usyiyi.cn/translate/django_182/ref/models/querysets.html" rel="external nofollow noreferrer">http://python.usyiyi.cn/translate/django_182/ref/models/querysets.html
9. 查询集all, filter, exclude, order_by调用这些函数会产生一个查询集,QuerySet类对象可以继续调用上面的所有函数 。
9.1 查询集特性
  1. 惰性查询:只有在实际使用查询集中的数据的时候才会发生对数据库的真正查询 。
  2. 缓存:当使用的是同一个查询集时,第一次使用的时候会发生实际数据库的查询,然后把结果缓存起来,之后再使用这个查询集时 , 使用的是缓存中的结果 。
9.2 限制查询集可以对一个查询集进行取下标或者切片操作来限制查询集的结果 。
对一个查询集进行切片操作会产生一个新的查询集 , 下标不允许为负数 。
取出查询集第一条数据的两种方式:

推荐阅读