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程序与服务器连接的WSGI接口
Apr 29 Python
Python数据持久化shelve模块用法分析
Jun 29 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
Python实现分段线性插值
Dec 17 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
使用Python进行防病毒免杀解析
Dec 13 Python
python def 定义函数,调用函数方式
Jun 02 Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 Python
python学习笔记之多进程
Aug 06 Python
python实现求纯色彩图像的边框
Apr 08 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
python内存管理机制原理详解
2019/08/12 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
python爬虫请求头的使用
2020/12/01 Python
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
父母对孩子说的话
2014/04/12 职场文书
企业指导教师评语
2014/04/28 职场文书
入党介绍人评语
2014/05/06 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
高中体育课教学反思
2016/02/16 职场文书
四则混合运算教学反思
2016/02/23 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang