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实现搜索本地文件信息写入文件的方法
Feb 22 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
python2.7安装图文教程
Mar 13 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
python selenium firefox使用详解
Feb 26 Python
pytorch获取vgg16-feature层输出的例子
Aug 20 Python
Django 限制访问频率的思路详解
Dec 24 Python
pycharm通过ssh连接远程服务器教程
Feb 12 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
python manim实现排序算法动画示例
Aug 14 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实现维护文件代码
2007/06/14 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
wxpython实现图书管理系统
2018/03/12 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
中学生在校期间的自我评价分享
2013/11/13 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
重点工程汇报材料
2014/08/27 职场文书
同学会邀请函模板
2015/01/30 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
医院员工辞职信范文
2015/05/12 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js