Django Model层F,Q对象和聚合函数原理解析


Posted in Python onNovember 12, 2020

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现抓取页面上链接的简单爬虫分享
Jan 21 Python
Python中非常实用的一些功能和函数分享
Feb 14 Python
Saltstack快速入门简单汇总
Mar 01 Python
详解Python多线程Selenium跨浏览器测试
Apr 01 Python
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
Python 逐行分割大txt文件的方法
Oct 10 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
Python数学形态学实例分析
Sep 06 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
使用python采集Excel表中某一格数据
May 14 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 Python
在Python中字典按值排序的实现方法
Nov 12 #Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 #Python
通过代码简单了解django model序列化作用
Nov 12 #Python
Django contrib auth authenticate函数源码解析
Nov 12 #Python
python 获取字典键值对的实现
Nov 12 #Python
Sentry错误日志监控使用方法解析
Nov 12 #Python
python 利用opencv实现图像网络传输
Nov 12 #Python
You might like
用libTemplate实现静态网页的生成
2006/10/09 PHP
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
php blowfish加密解密算法
2016/07/02 PHP
js 单引号 传递方法
2009/06/22 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
django之常用命令详解
2016/06/30 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
python中的列表与元组的使用
2019/08/08 Python
python脚本第一行如何写
2020/08/30 Python
利用python进行文件操作
2020/12/04 Python
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
中间件分为哪几类
2016/09/18 面试题
实习护士自我鉴定
2013/10/13 职场文书
八一演出活动方案
2014/02/03 职场文书
外贸专业求职信
2014/03/09 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
中国合伙人观后感
2015/06/02 职场文书
导游词之镜泊湖
2019/12/09 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
以下牛机,你有几个
2022/04/05 无线电