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类继承用法实例分析
May 27 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
Flask之flask-session的具体使用
Jul 26 Python
详解Python中的内建函数,可迭代对象,迭代器
Apr 29 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
如何在Python对Excel进行读取
Jun 04 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
python爬不同图片分别保存在不同文件夹中的实现
Apr 02 Python
新手必备Python开发环境搭建教程
May 28 Python
Python编写车票订购系统 Python实现快递收费系统
Aug 14 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
thinkphp模板输出技巧汇总
2014/11/24 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
Python常用的爬虫技巧总结
2016/03/28 Python
Python银行系统实战源码
2019/10/25 Python
python正则表达式实例代码
2020/03/03 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
一个SQL面试题
2014/08/21 面试题
J2EE中的容器都包括哪些
2013/08/21 面试题
高三高考决心书
2014/03/11 职场文书
农村葬礼主持词
2014/03/31 职场文书
费用申请报告范文
2015/05/15 职场文书
士兵突击观后感
2015/06/16 职场文书
深入理解python协程
2021/06/15 Python
Python函数对象与闭包函数
2022/04/13 Python