【转】Django之Model层的F对象,Q对象以及聚合函数

mac2022-06-30  26

转自:https://blog.csdn.net/wsy_666/article/details/86692050

一.F对象:

作用:用于处理类属性(即model的某个列数据),类属性之间的比较。使用之前需要先导入:from django.db.models import F例1:查询图书阅读量大于评论量图书信息。

BookInfo.objects.filter(bread__gt=F('bcomment'))**例2:**查询图书 阅读量大于2倍评论 量图书信息。

BookInfo.objects.filter(bread__gt=F('bcomment')*2)二.Q对象:作用:用于查询时条件之间的逻辑关系。not and or,可以对Q对象进行& | ~操作。使用之前需要先导入:from django.db.models import Q例1: 查询id大于3且阅读量大于30的图书的信息。

写法1:BookInfo.objects.filter(id__gt=3,bread__gt=30)写法2:BookInfo.objects.filter(Q(id__gt=3)&Q(bread__gt=30))例2:查询id大于3或者阅读量大于30的图书的信息。

BookInfo.objects.filter(Q(id__gt=3)|Q(bread__gt=30))例3:查询id不等于3图书的信息。

BookInfo.objects.filter(~Q(id=3))

三.聚合函数:作用:对查询结果进行聚合操作。sum count avg max min1. aggregate:调用这个函数来使用聚合。 返回值是一个字典

使用前需先导入聚合类:from django.db.models import Sum,Count,Max,Min,Avg

例1:查询所有图书的数目。

BookInfo.objects.all().aggregate(Count('id'))例2:查询所有图书阅读量的总和。

BookInfo.objects.all().aggregate(Sum(‘bread’))2.count函数: 返回值是一个数字作用:统计满足条件数据的数目。**例1:**统计所有图书的数目。

BookInfo.objects.count()**例2:**统计id大于3的所有图书的数目。

BookInfo.objects.filter(id__gt=3).count()总结:使用F对象导入:from django.db.models import Q使用Q对象导入:from django.db.models import F使用聚合函数对导入聚合类:from django.db.models import Sum,Count,Max,Min,Avg 等等

转载于:https://www.cnblogs.com/yoyo008/p/11477094.html

最新回复(0)