Django---聚合查询和F查询和Q查询

本文深入探讨Django ORM中的聚合分组查询、F查询和Q查询,详细讲解了如何使用聚合函数如Avg()和Sum(),以及如何通过values()和annotate()函数实现分组查询。同时介绍了F查询在相同表格内字段间的查询应用,和Q查询在复杂逻辑条件下的使用方法。

聚合分组查询

a)聚合: 聚合函数 Avg(),、Sum()、…

使用方法:aggregate(聚合函数)

b)分组: group by….

使用方法: xx.values(‘属性’).annotate(聚合函数)
提示: 先写 values() 后使用 annotate()函数。
values()中是属性表示分组并且显示的内容。

F查询和Q查询

导入模块

from django.db.models import F,Q
F查询:同一张表格的不同字段之间的查询
Q查询,需要复杂的逻辑关系的时候使用Q查询

Django提供F()来做这样的比较,F()的实例可以在查询中引用字段来比较同一个model实例中的两个不同字段的值。
Django支持F()对象和常数之间的加减乘除取模操作
在这里插入图片描述
filter()等方法中的关键字参数查询都是一起进行’and’的操作,如果需要执行更复杂的查询(例如OR语句),我们可以使用Q对象。
Q对象和 |(或)、&(与)、()(括号)、~(非) 进行联合使用。
注意: Q对象和关键字混合使用的时候,关键字需要写在最后。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值