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 相关文章推荐
TensorFlow打印tensor值的实现方法
Jul 27 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
Python3标准库总结
Feb 19 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
Golang GBK转UTF-8的例子
Aug 26 Python
Python算法中的时间复杂度问题
Nov 19 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
python def 定义函数,调用函数方式
Jun 02 Python
python mock测试的示例
Oct 19 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
Python控制鼠标键盘代码实例
Dec 08 Python
Python中Selenium对Cookie的操作方法
Jul 09 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注释实例技巧
2008/10/03 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
图像替换新技术 状态域方法
2010/01/28 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
Vue scoped及deep使用方法解析
2020/08/01 Javascript
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
python编写简单端口扫描器
2019/09/04 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
采购意向书范本
2014/03/31 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
会议室标语
2014/06/21 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
用Python生成会跳舞的美女
2022/01/18 Python
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript