django 查询

 

单表数据库查询

 1 def query(request):
 2     #1all() 返回的是quertset :以列表的形式存放的对象,默认书名
 3     # ret=Book.objects.all()
 4     # print(ret)<QuerySet [<Book: GO>, <Book: linux>, <Book: 北京折叠>, <Book: 三体>, <Book: 追风筝的人>, <Book: 乱世佳人>]>
 5     #2 filter()返回的是queryset:以列表的形式,可以多个字段查询,逗号隔开
 6     # ret=Book.objects.filter(price=100,title=1)
 7     # print(ret) < QuerySet[ < Book: 1 >] >
 8     # 3get()是以model的对象形式 可以进行子段查询,但是只能查找出一个结果,多了报错
 9     # ret=Book.objects.get(iprice=100)
10     # print(ret)
11     # 4 first() last() queryset: 返回model对象 查询列表的的第一个,最后一个
12     # ret=Book.objects.all()[0]
13     # ret = Book.objects.all().first()
14     # ret = Book.objects.all().last()
15     # print(ret)
16     # 5 exclude:返回值一个queryset
17     # ret=Book.objects.exclude(id=2)
18     # print(ret)<QuerySet [<Book: 2>, <Book: 3>, <Book: 4>, <Book: 5>]>
19 
20     # 6  order_by: 排序  由queryset对象调用,返回值是queryset
21     # ret=Book.objects.all().order_by("-id")
22     # print(ret)
23 
24     #7  count :数数  :由queryset对象调用 返回int 按照类表的个数查询
25     # ret=Book.objects.all().count()
26     # print(ret)
27 
28     #8 reverse()反转 :由queryset对象调用,返回值是queryset
29     # ret=Book.objects.all().order_by('price').reverse()
30     # print(ret)
31 
32     # 9 exists()判断 limit=1   返回布尔值
33     # ret=Book.objects.all().exists()
34     # print(ret)
35 
36     # 10 values 方法:由queryset对象调用,返回值是queryset的字典形式 key是values的值
37     # ret=Book.objects.filter(price=100).values("id")
38     # print(ret)<QuerySet [{'id': 2}, {'id': 3}, {'id': 4}]>
39 
40     # 11 values_list:由queryset对象调用,返回值是queryset
41     # ret=Book.objects.filter(price=100).values_list("id")
42     # print(ret)<QuerySet [(2,), (3,), (4,)]>
43 
44     # 12 distinct 去重: 由queryset对象调用,返回值是queryset 需要添加values("title")因为返回的是model对象的列表没法判断
45     # ret = Book.objects.all().values("title").distinct()
46     # print(ret)
47 
48     #
49     ############################### 模糊查询 ##########################
50 
51     #查询价格大于200的书籍
52     # ret=Book.objects.filter(price__gte=200)
53     # print(ret)
54 
55     # 查询书籍名称以py开头的所有的书籍名称
56     # ret=Book.objects.filter(title__istartswith="py").values("title")
57     # ret=Book.objects.filter(title__contains="p").values("title")
58     # print(ret) # <QuerySet [{'title': 'pycharm'}, {'title': 'python'}]>
59 
60     # 查询2017年7月份的所有的书籍
61     # ret=Book.objects.filter(pub_date__year=2017,pub_date__month=7)
62     # print(ret) #  <QuerySet []>
63    
64 
65 
66     # >>>>>>>>>>>>>>>>>>>>>>>>练习>>>>>>>>>>>>>>>
67 
68     # ret=Book.objects.filter(price__gt=200,public="人民日报")
69     # print(ret)
70     # ret=Book.objects.filter(title__startswith="py",book_date__year=2018,book_date__month=10).values("title")[0].get("title")
71     # print(ret)
72     # Book.objects.filter(price__in=[50,100,150]).values("title","public")
73     # ret=Book.objects.filter(price__gte=100,price__lte=200).values("title","price")
74     # for items in ret:
75     #     print(items.get("price"),items.get("title"))
76     # print(ret)
77     ret=Book.objects.filter(public="人民日报").order_by("-price").values("price")
78     for item in ret:
79 
80         print(item.get("price"))
单表查询,模糊查询

反向解析:

模板: {%  url " name的值 "   %}    {%  url " name的值 " foo.id%} 

视图:reverse("books')            含;变量reverse("books',args())  

原文地址:https://www.cnblogs.com/zhangqing979797/p/9845925.html