聚合函数
使用aggregate()函数返回聚合函数的值
Avg:平均值
Count:数量
Max:最大值
Min:最小值
Sum:求和
使用案例
from django.db.models import Sum
from django.http import HttpResponse
from django.shortcuts import render
from .models import Team,Player
def get_count(request):
#拿全部数据
players = Player.objects.all()
#求火力输出总和
res = players.aggergate(Sum('count'))
#返回结果
return HttpResponse(res.get('count__sum'))
F对象
使用场景:当你想查询一条数据时,遇到自己的两条字段数据做比较的时候
使用方法:
def get_player(req):
#需求:年纪大于火力输出的数据
res = Player.objects.filter(age__get=F('count'))
#将查询出来的对象全部转换成数组嵌套字段的格式
result = [model_to_dict(i) for i in res]
return HttpResponse(json.dumps(result))
Q对象
使用场景:多条件组合查询的时候使用
使用方法:
def get_player_by_q(req):
#需求:查询年纪大于30 火力输出大于100
res = Player.objects.filter(Q(age__get)=30) | Q(count__get=100)
return HttpResponse(res)
条件连接符
| 表示 或 条件(对应mysql里面的or)
&表示 与 条件(对应mysql里面的and)
~表示 取反