django框架F&Q 聚合与分组操作示例


Posted in Python onDecember 12, 2019

本文实例讲述了django框架F&Q 聚合与分组操作。分享给大家供大家参考,具体如下:

F 使用查询条件的值,专门取对象中某列值的操作,可以对同一个表中的两个列进行比较

from django.db.models import F
ret=models.Book.objects.filter(count__lt=F('sale')).values() #查找 列 count < sale的数据
for i in ret:
  print(i)
models.Book.objects.filter(sale__gt=F('stock')) #将一个表中的sale和stock进行比较
models.Book.objects.update(sale=F('sale')*2) #将列sale的数据*2,数据自动提交到数据库 print(models.Book.objects.all().values())

Q 构建搜索条件

from django.db.models import Q
#找出满足两个条件的值
ret=models.Book.objects.filter(id__gte=3,title='学泡妞').values()
print(ret)
#使用Q 中的 | 是或的关系
ret=models.Book.objects.filter(Q(id__lt=2)| Q(id__gte=3)).values()
print(ret)
#使用 & 与的关系
ret=models.Book.objects.filter(Q(title='学泡妞') & Q(id__gte=3)).values()
print(ret)
# ~Q 是非的关系
ret=models.Book.objects.filter(~Q(Q(title='学泡妞') & Q(id__gte=3))).values()
print(ret)

聚合查询---关键字aggregate

#统计所有书的平均价格:聚合
  from django.db.models import Avg,Count,Max,Min
  ret=Book.objects.all().aggregate(c=Avg("price"))
  print(ret) #{'c': 114.66666666666667}

分组查询----关键字annotate

#查询每个出版社出版的书籍个数
  ret=Publish.objects.all().annotate(c=Count("book")).values("name","c")
  print(ret) #<QuerySet [{'name': '苹果出版社', 'c': 1}, {'name': '桔子出版社', 'c': 2}]>
  #查询每一个作者出版的书籍的平均价格
  ret=Author.objects.all().annotate(price_avg=Avg("book__price")).values("name","price_avg")
  print(ret)#<QuerySet [{'name': 'alex', 'price_avg': 116.5}, {'name': 'egon', 'price_avg': 114.66666666666667}, {'name': 'yuan', 'price_avg': 111.0}]>
  #查询每一本书籍名称以及作者个数
  ret=Book.objects.all().annotate(c=Count("author")).values("title","c")
  print(ret) #<QuerySet [{'title': '历险记', 'c': 2}, {'title': 'go', 'c': 2}, {'title': 'java', 'c': 2}]>
  #查询价格大于100的每一本书籍名称以及作者个数
  ret = Book.objects.filter(price__gt=100).annotate(c=Count("author")).values("title", "c")
  print(ret)

区别:查询所有书的平均价格用聚合,查询每本书的平均价格用分组

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
Python中每次处理一个字符的5种方法
May 21 Python
python相似模块用例
Mar 04 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 Python
python Pandas 读取txt表格的实例
Apr 29 Python
Python使用Pickle库实现读写序列操作示例
Jun 15 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
通过cmd进入python的实例操作
Jun 26 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 #Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 #Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 #Python
python 使用opencv 把视频分割成图片示例
Dec 12 #Python
Python2与Python3的区别点整理
Dec 12 #Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 #Python
opencv3/C++实现视频读取、视频写入
Dec 11 #Python
You might like
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
TensorFlow实现模型评估
2018/09/07 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
python如何获取apk的packagename和activity
2020/01/10 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
十八届三中全会报告学习材料
2014/02/17 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
小学校长个人总结
2015/03/03 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
护士旷工检讨书
2015/08/15 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
《打电话》教学反思
2016/02/22 职场文书
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS