Django学习笔记(二十):model模型查询

查询集

查询集表示从数据库获取的对象集合

查询集科研有多个过滤器

过滤器

返回查询集的方法称为过滤器

过滤器就是一个函数,基于所给的参数限制查询集结果

all()  返回所以数据

filter()  返回符合条件的数据

exclude()  过滤掉符合条件的数据

values()  一条数据就是一个字典,返回一个列表

get()  返回一个满足条件的对象

first()  返回查询集中的第一对象

last()  返回查询集中的最后一个对象

count()  返回当前查询集中的对象个数

exists()  判断查询集中是否有数据,有数据就返回True

all()[0:5] 限制查询集

聚合函数

使用aggregate()函数返回聚合函数的值
Avg:平均值
Count:数量
Max:最大
Min:最小
Sum:求和

使用实例

def get_count(request):
    # 拿全部的数据
    players = Player.objects.all()
    # 求火力输出总和
    res = players.aggregate(Sum('count'))
    print(res)
    return HttpResponse(res.get('count__sum'))

F,Q

F,将同一模型的两个字段属性进行比较

def get_player(req):
    #需求:年纪大于火力输出的数据
    res = Player.objects.filter(age__gt=F('count'))
    
    #将查询出来的对象,全部转成数组嵌套字段的格式
    result = [model_to_dict(i) for i in res]

    return HttpResponse(jion.dumps(result))

Q,多条件组合查询

def get_player_by_q(req):
#     需求:查询年纪大于30 火力输出大于100
    res = Player.objects.filter(Q(age__gt=30) | Q(count__gt=100))
    return HttpResponse(res)

猜你喜欢

转载自blog.csdn.net/xiaohuoche175/article/details/81332686
今日推荐