深入浅析Django中的Model层F,Q对象和聚合函数的原理-创新互联

这期内容当中小编将会给大家带来有关深入浅析Django中的Model层F,Q对象和聚合函数的原理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

我们提供的服务有:成都网站制作、做网站、微信公众号开发、网站优化、网站认证、丰满ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的丰满网站制作公司

一.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 min


1. 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 等等

上述就是小编为大家分享的深入浅析Django中的Model层F,Q对象和聚合函数的原理了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


本文题目:深入浅析Django中的Model层F,Q对象和聚合函数的原理-创新互联
文章出自:http://ybzwz.com/article/disede.html