django_orm基础查询
添加记录:
1)save方法
通过创建模型类对象,执行对象的save()方法保存到数据库中
student = Student(
name="刘德华",
age=17,
sex=True,
clasmate=301,
description="一手忘情水"
)
)
s
student.save()
print(student.id) # 判断是否新增有ID
2)create方法
通过模型类.objects.create()保存,返回生成的模型类对象。
student = Student.objects.create(
name="赵本山",
age=50,
sex=True,
class_number=301,
description="一段小品"
)
)
print(student.id)
基础查询:
1)、all()
查询所有对象,返回queryset对象
student = student.objects.all()
2)、filter()
筛选条件相匹配的对象,返回queryset对象
查询所有的女生
s
students = Student.objects.filter(sex=0)
3)、get()
返回与所给筛选条件相匹配的对象,返回结果有且只有1个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
student = Student.objects.get(pk=1)
print(student)
print(student.description)
g
get使用过程中的注意点:get是根据条件返回多个结果或者没有结果,都会报错
try:
student = Student.objects.get(name="刘德华")
print(student)
print(student.description)
except Student.MultipleObjectsReturned:
print("查询得到多个结果!")
except Student.DoesNotExist:
print("查询结果不存在!")
4)first()、last()
分别为查询集的第一条记录和最后一条记录
没有结果返回none,如果有多个结果,则返回模型对象
s
students = Student.objects.all()
print(students.name)
print(students[0].name)
s
stu01 = Student.objects.first()
s
stu02 = Student.objects.last()
print(stu01.name)
print(stu02.name)
5)exclude()
筛选条件不匹配的对象,返回queryset对象。
查询张三以外的所有的学生
s
students = Student.objects.exclude(name="张三")
print(students)
6)order_by()
对查询结果排序
order_by("字段") # 按指定字段正序显示,相当于 asc 从小到大
order_by("-字段") # 按字段倒序排列,相当于 desc 从大到小
order_by("第一排序","第二排序",...)
查询所有的男学生按年龄从高到低展示
students = Student.objects.all().order_by("-age","-id")
s
students = Student.objects.filter(sex=1).order_by("-age", "-id")
print(students)
7)count()
查询集中对象的个数
查询所有男生的个数
c
count = Student.objects.filter(sex=1).count()
print(count)
8)values()、values_list()
value()把结果集中的模型对象转换成字典,并可以设置转换的字段列表,达到减少内存损耗,提高性能
values_list(): 把结果集中的模型对象转换成列表,并可以设置转换的字段列表(元祖),达到减少内存损耗,提高性能
values 把查询结果中模型对象转换成字典
s
student_list = Student.objects.filter(classmate="301")
s
student_list = student_list.order_by("-age")
s
student_list = student_list.filter(sex=1)
r
ret1 = student_list.values() # 默认把所有字段全部转换并返回
r
ret2 = student_list.values("id","name","age") # 可以通过参数设置要转换的字段并返回
r
ret3 = student_list.values_list() # 默认把所有字段全部转换并返回
r
ret4 = student_list.values_list("id","name","age") # 可以通过参数设置要转换的字段并返回
print(ret4)
return JsonResponse({},safe=False)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix