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中的map、reduce和filter浅析
Apr 26 Python
Python和GO语言实现的消息摘要算法示例
Mar 10 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
Python爬虫DOTA排行榜爬取实例(分享)
Jun 13 Python
Python中单、双下划线的区别总结
Dec 01 Python
关于Python数据结构中字典的心得
Dec 04 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
Jan 10 Python
在django中form的label和verbose name的区别说明
May 20 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 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/03 咖啡文化
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
python django中8000端口被占用的解决
2019/12/17 Python
用python批量移动文件
2021/01/14 Python
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
建筑自我鉴定
2013/10/19 职场文书
大学自我鉴定范文
2013/12/26 职场文书
给导游的表扬信
2014/01/10 职场文书
公司前台辞职报告
2014/01/19 职场文书
知识竞赛活动方案
2014/02/18 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
学生检讨书范文
2015/01/27 职场文书
运动会致辞稿
2015/07/29 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS