Python全系列 教程
3567个小节阅读:5929.4k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
文档:https://docs.djangoproject.com/zh-hans/4.1/ref/models/querysets/#count
Queryset.order_by(*fields)
默认情况下,QuerySet
返回的结果是按照模型 Meta
中的 ordering
选项给出的排序元组排序的
可以通过使用 order_by
方法在每个 QuerySet
的基础上覆盖这一点
xxxxxxxxxx
class Meta:
ordering = ['name']
举例:
xxxxxxxxxx
Waiter.objects.filter(induction__year=2030).order_by('-induction','id')
上述结果将按 induction
降序排列,然后按 id
升序排列。"-induction"
前面的负号表示 降序。升序是隐含的
reverse() 反向返回查询集元素的顺序
count() 返回一个整数,表示数据库中与 QuerySet
匹配的对象数量
first() 返回的是查询集中的第一个对象
last() 返回的是查询集中的最后一个对象
values()
QuerySet
,当用作可迭代对象时,返回字典,而不是模型实例, 其中每一个字典都代表一个对象,键与模型对象的属性名相对应values()
方法接受可选的位置参数 *fields
,它指定了 SELECT
应该被限制的字段名xxxxxxxxxx
from food_app.models import Waiter
# 获取所有数据
Waiter.objects.all()
# 获取所有数据,按id排序,升序
Waiter.objects.all().order_by('id')
# 获取所有数据,按id排序,降序
Waiter.objects.all().order_by('-id')
# 获取所有数据,按id排序,升序,反序
Waiter.objects.all().order_by('id').reverse()
# 获取所有数据,按induction排序,升序
Waiter.objects.all().order_by('induction')
# 获取2030-6-7之前入职的数据,按induction排序升序,若值相同按id排序降序
Waiter.objects.filter(induction__lt='2030-6-7').order_by('induction','-id') # 获取2030-6-7之前入职的数据,统计数量
Waiter.objects.filter(induction__lt='2030-6-7').count()
# 获取2030-6-7之前入职的数据,获取第1条
Waiter.objects.filter(induction__lt='2030-6-7').first()
# 获取2030-6-7之前入职的数据,获取最后1条
Waiter.objects.filter(induction__lt='2030-6-7').last()
# 获取2030-6-7之前入职的数据,将数据转成dict放在QuerySet中
Waiter.objects.filter(induction__lt='2030-6-7').values()
# 获取2030-6-7之前入职的数据,将数据转成dict,只要id与name字段,放在QuerySet中
Waiter.objects.filter(induction__lt='2030-6-7').values('id','name')
注意
大部分检索是懒惰执行的,只在真实获取值的时候,才会去连接数据库获取数据
xxxxxxxxxx
# 还没获取数据
w1 = Waiter.objects.filter(induction__lt='2030-6-7').values('id','name')
# 获取数据
print(w1)
# 获取数据,因为要做数据切片
w1 = Waiter.objects.filter(induction__lt='2030-6-7').values('id','name')[:2]
实时效果反馈
1. 关于Django模型, 数据说法错误的是?
A 数据可以通过order_by()排序查询
B 数据可以通过values()将结果转成dict类型
C 数据可以通过reverse()反序查询
D 数据可以通过last()获取最后一条数据
答案
1=>B