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控制台显示时钟的示例
Feb 24 Python
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
Jul 17 Python
python 列表降维的实例讲解
Jun 28 Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 Python
python实现知乎高颜值图片爬取
Aug 12 Python
Django实现文件上传和下载功能
Oct 06 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
python关闭占用端口方式
Dec 17 Python
python实现简单贪吃蛇游戏
Sep 29 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
python manim实现排序算法动画示例
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使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
如何在PHP中读写文件
2020/09/07 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
Vue 组件封装 并使用 NPM 发布的教程
2018/09/30 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Python中shutil模块的学习笔记教程
2017/04/04 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
Python类的继承和多态代码详解
2017/12/27 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
python mysql中in参数化说明
2020/06/05 Python
python代码实现猜拳小游戏
2020/11/30 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
执行力心得体会
2013/12/31 职场文书
会计学专业求职信
2014/07/17 职场文书
小学新教师个人总结
2015/02/05 职场文书
2015年度企业工作总结
2015/05/21 职场文书
Go语言特点及基本数据类型使用详解
2022/03/21 Golang