Django:模型_QuerySet对象实例

QuerySet对象实例

前面几章学习了QuerySet对象的很多方法,在实际场景中可能需要几个不同的方法相互调用,才能实现最终的需求,特别是在根据多个表关系来查询数据时。所以要做到灵活的使用的话,还是需要多练习

 

模型类

后面会介绍几个实际例子,所有例子都是基于下面几个模型类来实现的

例1:
⑴模型类

⑵查看数据:学生表

⑶查看数据:老师表

⑷查看数据:课程表

⑸查看数据:成绩表

 

 

查询每科平均成绩大于60分的同学和其平均成绩

例2:使用自己的方法

# -*- coding: utf-8 -*-
from django.http import HttpResponse
from polls.models import Student,Score,Course,Teacher
from django.db import models
from django.db import connection


def index(request):
    #查询每科平均成绩大于60分的同学和其平均成绩
    score_avgs = Student.objects.annotate(score_avg=(models.Avg("score__score")))#查询每个学生的平均成绩
    print(score_avgs)
    students_list = []
    scores_avg_list = []
    for students_avg in score_avgs:#对返回的QuerySet进行遍历:返回模型类
        print(students_avg)
        print(students_avg.score_avg)
        if students_avg.score_avg >= 60:#依次判断每个模型类下面的score_avg属性值是否>=60
            students_list.append(students_avg.name)#获取score_avg属性值是否>=60数据中的name属性值(因为是从Student模型类开始查询的,因此会返回Student表中的数据)
            scores_avg_list.append(students_avg.score_avg)
        else:
            pass
    student_score_dicts = dict(zip(students_list,scores_avg_list))#将两个列表打包并转换为字典
    print(stude
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django中,QuerySetObject是两个不同的概念。 1. QuerySet QuerySetDjango中的一个概念,它表示数据库操作的结果集合。QuerySet可以像列表一样进行迭代、切片等操作,但是它并不是真正的列表。当你执行一个查询操作时,Django会返回一个QuerySet对象,这个对象包含了一些查询结果的方法。这些方法可以用来进行进一步的过滤、排序、切片等操作。QuerySet是惰性的,这意味着它只有在需要的时候才会执行查询,这有助于提高性能。 例如,以下代码创建了一个QuerySet对象,它包含了所有年龄大于18岁的用户: ``` from django.contrib.auth.models import User users = User.objects.filter(age__gt=18) ``` 2. Object Object指的是Django模型中的一个实例。一个模型是一个数据库表的抽象,它定义了表的结构和字段,每个实例则代表了表中的一行数据。你可以使用ORM API来创建、更新、删除和查询模型实例。 例如,以下代码创建了一个User模型实例: ``` from django.contrib.auth.models import User user = User.objects.create(username='john') user.first_name = 'John' user.last_name = 'Doe' user.save() ``` 在这个例子中,我们首先创建了一个User实例,然后通过修改它的属性来更新它,最后使用save()方法将更改保存到数据库中。 总结 QuerySetObjectDjango中的两个不同的概念,它们分别代表了数据库操作的结果集合和模型中的一个实例QuerySet是一个惰性的对象,它包含了一些查询结果的方法,可以用来进行进一步的过滤、排序、切片等操作。Object则代表了一个模型实例,你可以使用ORM API来创建、更新、删除和查询它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值