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 相关文章推荐
Python3处理文件中每个词的方法
May 22 Python
Python栈类实例分析
Jun 15 Python
python从入门到精通(DAY 2)
Dec 20 Python
PyQt5每天必学之带有标签的复选框
Apr 19 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
python可视化实现代码
Jan 15 Python
Python Flask框架模板操作实例分析
May 03 Python
Python如何实现强制数据类型转换
Nov 22 Python
使用pandas的box_plot去除异常值
Dec 10 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
django模板获取list中指定索引的值方式
May 14 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 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中过滤非法字符的具体实现
2013/10/29 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
Date对象格式化函数代码
2010/07/17 Javascript
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python操作MySQL数据库的方法分享
2012/05/29 Python
Python循环语句中else的用法总结
2016/09/11 Python
Python装饰器用法实例总结
2018/02/07 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
python dumps和loads区别详解
2020/02/04 Python
python识别验证码图片实例详解
2020/02/17 Python
python使用Geany编辑器配置方法
2020/02/21 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
统计专业自荐书
2014/07/06 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
Python进程间的通信之语法学习
2022/04/11 Python