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 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
Python使用MySQLdb for Python操作数据库教程
Oct 11 Python
Python中使用装饰器时需要注意的一些问题
May 11 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
python去掉行尾的换行符方法
Jan 04 Python
python机器学习之决策树分类详解
Dec 20 Python
python求质数列表的例子
Nov 24 Python
matlab中二维插值函数interp2的使用详解
Apr 22 Python
Python计算信息熵实例
Jun 18 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 Python
Python中的嵌套循环详情
Mar 23 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
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
xml和web特殊字符
2009/04/28 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
python如何重载模块实例解析
2018/01/25 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
详解Python用户登录接口的方法
2019/04/17 Python
python实现车牌识别的示例代码
2019/08/05 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
毕业生机械建模求职信
2013/10/14 职场文书
毕业求职自荐信格式是什么
2013/11/19 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
毕业证委托书范文
2014/09/26 职场文书
2014年领班工作总结
2014/11/25 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书