当前位置: 首页 > news >正文

金华职院优质校建设网站网站设置在设备之间共享什么意思

金华职院优质校建设网站,网站设置在设备之间共享什么意思,wordpress使用第三方播放器,甘肃建设厅网站注入1. values()方法 1.1 基本概念 values()方法用于返回一个包含字典的QuerySet,而不是模型实例。每个字典表示一个对象,键对应于模型字段名称。 1.2 基本用法 # 获取所有书籍的标题和出版日期 from myapp.models import Bookbooks Book.objects.value…

1. values()方法

1.1 基本概念

values()方法用于返回一个包含字典的QuerySet,而不是模型实例。每个字典表示一个对象,键对应于模型字段名称。

1.2 基本用法

# 获取所有书籍的标题和出版日期
from myapp.models import Bookbooks = Book.objects.values('title', 'pub_date')
# 返回结果示例: [{'title': 'Django入门', 'pub_date': datetime.date(2023, 1, 1)}, ...]

1.3 特点

  • 只获取指定字段,减少内存使用
  • 结果以字典形式返回,而不是模型实例
  • 可以用于跨模型关系查询

1.4 关联查询

# 获取书籍及其作者姓名
books = Book.objects.values('title', 'author__name')

在这里插入图片描述

2. annotate()方法

2.1 基本概念

annotate()用于给QuerySet中的每个对象添加计算字段(注解),通常与聚合函数一起使用。

2.2 基本用法

from django.db.models import Count
from myapp.models import Author# 计算每位作者的书籍数量
authors = Author.objects.annotate(book_count=Count('book'))
# 现在每个author对象都有一个book_count属性

2.3 常用聚合函数

  • Count(): 计数
  • Sum(): 求和
  • Avg(): 平均值
  • Max(): 最大值
  • Min(): 最小值

3. values()和annotate()的组合使用

3.1 分组统计

# 按出版社分组统计书籍数量
from django.db.models import Countstats = Book.objects.values('publisher').annotate(count=Count('id'))
# 返回结果示例: [{'publisher': 'A出版社', 'count': 5}, ...]

3.2 多字段分组

# 按作者和出版年份分组统计
stats = Book.objects.values('author', 'pub_date__year').annotate(count=Count('id'))

3.3 注意事项

  • values()annotate()之前使用会改变分组依据
  • annotate()values()之前使用会为每个对象添加注解

4. 实际案例

4.1 博客系统统计

# 统计每个分类下的文章数量和平均阅读量
from django.db.models import Count, Avgstats = Post.objects.values('category').annotate(post_count=Count('id'),avg_views=Avg('views')
)

4.2 电商系统分析

# 统计每个用户的总消费金额和订单数
from django.db.models import Sum, Countuser_stats = Order.objects.values('user').annotate(total_spent=Sum('amount'),order_count=Count('id')
)

5. 性能优化建议

  1. 只查询需要的字段
  2. 合理使用select_related和prefetch_related
  3. 在数据库层面完成计算,而不是在Python中
  4. 对大型数据集考虑使用iterator()

课后练习

  1. 使用values()和annotate()统计每个出版社出版的书籍数量
  2. 计算每个作者的书籍平均评分
  3. 找出每年出版书籍最多的月份

总结

values()和annotate()是Django ORM中强大的工具,能够高效地进行数据查询和统计分析。理解它们的区别和组合使用方式,可以大大提升开发效率和查询性能。

http://www.dtcms.com/a/462861.html

相关文章:

  • Day 09(上) B2a实例分析-----如何理解Sensitive detector 和 Hit
  • h5网站需要哪些技术欧模网室内设计网官网
  • 基于CNN和Transformer的分割技术的论文感悟
  • 怎么开设网站 优帮云简单描述一下网站制作的流程
  • 昌平网站建设自建房平面图设计软件
  • 佛山顺德网站建设公司哪家好做外贸网站的好处
  • 《计算》第九十章读书笔记
  • 快速掌握java中数组的排序
  • 从数据孤岛到生态协同:采购管理系统的跨系统集成方案
  • 厦门建站网址费用平台制作专业网站制作
  • 做网站的地方咋做网站
  • 提升板式换热器换热效率
  • 前端核心框架vue之项目篇(cli、vite 5/5)
  • 南昌网站建设咨询上海设计公司排名招聘
  • 网站用php做的吗网站建设的知名公司
  • 长春网站公司有哪些内容个人可以开发app软件吗
  • java-网络编程-UDP,TCP通信
  • 北京外包做网站如何报价抖音小程序变现教程
  • 邮箱域名可以做网站吗免费网站打包
  • 基于AT32的RT-Thread移植
  • 物流公司排名网站建设乐云seo
  • 组合两个表 与 从不订购的客户
  • 常熟企业网站建设2018做网站的软件
  • 嵌入式字符串解析自我批斗练习
  • PID控制器的不同的传递函数与参数形式
  • 网站建设与企业发展平面设计兼职接单
  • 网站 模板 下载青岛学网站建设的学校
  • vue啊哈哈哈哈哈哈哈哈
  • 广州网站设计实力乐云seo国外做美食的网站
  • Git安装与配置:操作步骤+Gitee绑定