沿用第七天的数据库, 数据库现在是这样的:
配置好主路由 include 子路由
子路由引入 views
在 views 页面定义 test 测试请求如下:
- def test(request):
- # 1.all() 方法: 获取所有的对象, 返回一个 QuerySet 类型
- ret = models.Person.objects.all()
- print(ret) # <QuerySet [<Person: <obj name:lxkk>>, <Person: <obj name:kkk>>, <Person: <obj name:las>>, <Person: <obj name:lls>>]>
- print(ret[1].name, ret[1].age)
运行结果:
- # 2.filter() 方法, 过滤出符合条件的对象, 返回一个 QuerySet 类型
- ret = models.Person.objects.filter(age=21)
- print(ret)
- print(ret[0].name)
- # 多个条件
- # 转换成 sql 后使用 and 连接
- ret = models.Person.objects.filter(age=21, height=175)
- print(ret)
- # 3.get() 方法: 获取具体的某一个对象 , 如果查询不到则报错, 如果查询出多个来也会报错, 返回值是符合条件的对象
- ret = models.Person.objects.get(id=14)
- print(ret)
- print(ret.age)
- # 4.first() 返回查询的第一个对象
- ret = models.Person.objects.filter(age=21).first()
- print(ret)
- ret = models.Person.objects.filter(age=19).first()
- print(ret) # 列表信息存在
- print(ret[0].name) # 命令行下打印查找到的信息
- ret = models.Person.objects.filter(age=50).first()
- print(ret) # 列表为空
- print(ret[0].name) # 报错
- ret = models.Person.objects.filter(age=50).first()
- print(ret) # 列表中不存在相匹配的信息, 不报错, 返回 None
- # 5.last() 方法: 取出查询结果的最后一个, 返回一个具体的对象
- ret = models.Person.objects.filter(age=21).last()
- print(ret)
- # 6.order_by() 排序: 默认按照升序排序, 在属性前面添加'-'号表示降序
- ret = models.Person.objects.filter(age=21).order_by('id')
- print(ret) # 升序
- ret = models.Person.objects.filter(age=21).order_by('-id')
- print(ret) # 降序
- # 如果有多个排序规则, 则使用逗号隔开即可
- ret = models.Person.objects.order_by('age', '-id')
- print(ret)
return HttpResponse('常用方法')
来源: http://www.bubuko.com/infodetail-3360877.html