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)

posted @   听雨潇湘  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示