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三元运算符实现方法
Dec 17 Python
Python性能优化技巧
Mar 09 Python
Python端口扫描简单程序
Nov 10 Python
SVM基本概念及Python实现代码
Dec 27 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
详解Python核心对象类型字符串
Feb 11 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
对Python强大的可变参数传递机制详解
Jun 13 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
使用Tkinter制作信息提示框
Feb 18 Python
pycharm 添加解释器的方法步骤
Aug 31 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 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
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
将json对象转换为字符串的方法
2014/02/20 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
angular2使用简单介绍
2016/03/01 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
基于python调用psutil模块过程解析
2019/12/20 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
开办饭店创业计划书
2013/12/28 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
大学生操行评语大全
2014/12/31 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
vue选项卡切换的实现案例
2022/04/11 Vue.js