Django学习笔记(四):django常用查询函数

聚合函数

使用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)

~表示  取反

猜你喜欢

转载自blog.csdn.net/xiaohuoche175/article/details/81263173