常用方法:
stu_obj=models.Student.objects
# #获取所有的学生对象
# stu=models.Student.objects.all()
# print(stu)
# #<QuerySet [<Student: <Student obj name : 赵四>>, <Student: <Student obj name : 丁楠>>, <Student: <Student obj name : 梁鹏飞>>, <Student: <Student obj name : 杜斌>>]>
#获取name为赵四对象
stu=stu_obj.filter(name='赵四')
print(stu)#返回列表
#<QuerySet [<Student: <Student obj name : 赵四>>]>
#获取name为赵四的get只能是name只有一个的不能有多个赵四
# 若是多个则会报错
# 防止报错一般get后面跟id或者是主键的,没有重复的
stu=stu_obj.get(name='赵四')
print(stu) #返回对象
#按照年龄排序
stu_list=stu_obj.order_by('age')
print(stu_list)# 返回列表
#<QuerySet [<Student: <Student obj name : 丁楠>>, <Student: <Student obj name : 赵四>>, <Student: <Student obj name : 杜斌>>, <Student: <Student obj name : 梁鹏飞>>]>
#返回所有学生的age
stu=stu_obj.values('name','age')
print(stu) #返回列表套字典的形式返回
# < QuerySet[{'name': '赵四', 'age': 20}, {'name': '丁楠', 'age': 12}, {'name': '梁鹏飞', 'age': 50}, {'name': '杜斌', 'age': 33}] >
stu=stu_obj.values_list('name','age')
print(stu)#列表里套元组的形式返回
#<QuerySet [('赵四', 20), ('丁楠', 12), ('梁鹏飞', 50), ('杜斌', 33)]>
#不包含赵四的
stu=stu_obj.exclude(name='赵四')
print(stu) #返回列表
#<QuerySet [<Student: <Student obj name : 丁楠>>, <Student: <Student obj name : 梁鹏飞>>, <Student: <Student obj name : 杜斌>>]>
#查看有多少个对象
stu=stu_obj.count()
print(type(stu),stu) #返回int型
# <class 'int'> 4
#判断是否有对象
stu=stu_obj.exists()
print(stu)
#True
return HttpResponse('success')
总结
(1)、all(): 查询所有结果
(2)、filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
(3)、get(**kwargs):返回与所给筛选条件相匹配的对象,返回结果有且只有一个, 如果符合筛选条件的对象超过一个或者没有都会抛出错误。
(4)、exclude(**kwargs):它包含了与所给筛选条件不匹配的对象
(5)、values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,
运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列
(6)、values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
(7)、order_by(*field): 对查询结果排序
(8)、reverse(): 对查询结果反向排序,请注意reverse()通常只能在具有已定义顺序的QuerySet上调用(在model类的Meta中指定ordering或调用order_by()方法)。
(9)、count(): 返回数据库中匹配查询(QuerySet)的对象数量。
(10)、first(): 返回第一条记录
(11)、last(): 返回最后一条记录
(12)、exists(): 如果QuerySet包含数据,就返回True,否则返回False
1.返回对象方法get()、first()、last()
2.返回QuerySet对象方法
all()、filter()、exclude()、order_by()、reverse()、
values() 返回一个可迭代的字典序列。
values_list() 返回一个可迭代的元祖序列。
3.返回Boolean值方法 exists()
4.返回数字的方法count()