转发之https://www.cnblogs.com/gyh04541/p/7910004.html
盘问api的要领:
表.objects.all() ---[obj1,obj2,....]
表.objects.all().first()
表.objects.filter(id=2) ---[obj1,] ,得到一个调集东西,调集里只有一个,跟上first()或者【0】取到一个具体东西
表.objects.get(id=2)---obj,得到一个单独的东西,确定能找到,可以用,如果找到多个或者没有的,都报错。
QuerySet.first(),与get()要领一样,都得到一个东西
QuerySet.last(),与get()要领一样,都得到一个东西
----update 和save要领区别
Book.objects.filter(id=5).update(price=1000) #直接更新update 是QuerySet调集东西的要领,保举
save要领
book = Book.objects.get(id=5)
book.price=400
book.save()
------value要领,
values(*field),得到一个可迭代的字典序列,不再是一个个东西,而是东西的值,#得到QuerySet调集是所有的记录,,里面是字典,key是字段,value是值
def query_value(request): b1 = Book.objects.values(‘title‘)#title值字段 # print(b1) #得到QuerySet调集是所有的记录,,里面是字典,key是字段,value是值, #< QuerySet[{‘title‘: ‘Linux‘}, {‘title‘: ‘项塔兰‘}, {‘title‘: ‘追鹞子的人‘}, {‘title‘: ‘富爸爸‘}] > b2 = Book.objects.values(‘title‘,‘price‘)#可以加多个字段 print(b2) #< QuerySet[{‘title‘: ‘Linux‘, ‘price‘: Decimal(‘30.00‘)}, # {‘title‘: ‘项塔兰‘, ‘price‘: Decimal(‘45.00‘)}, # {‘title‘: ‘追鹞子的人‘, ‘price‘: Decimal(‘39.90‘)}, # {‘title‘: ‘富爸爸‘, ‘price‘: Decimal(‘23.00‘)}] > b3 = Book.objects.filter(id__gt=4).values(‘title‘)#盘问id大于4,的title,得到一个东西调集,显示书名 #<QuerySet [{‘title‘: ‘富爸爸‘}]> print(b3) return HttpResponse(‘value 要领的盘问要领‘)
---
value_list ( ) 得到一个元组格局的数据,只有字段的值,
# ----valuelist 要领盘问 ,得到一个元组格局数据,只有字段的值, b4 = Book.objects.filter(id__gt=3).values_list(‘title‘) print(b4) #<QuerySet [(‘追鹞子的人‘,), (‘富爸爸‘,)]>
exclude()要领,
b5 = Book.objects.exclude(id__gt=3)#exclude 排除 ,盘问id大于4的以外的册本,<QuerySet [<Book: Linux>, <Book: 项塔兰>]> b6 = Book.objects.filter(id__lt=4)# 盘问id小于4 的册本 <QuerySet [<Book: Linux>, <Book: 项塔兰>]> print(b5) print(b6) #b5 和b6 得到功效一样,
----
其他盘问要领
# <6>order_by(*field): 对盘问功效排序 # <7>reverse(): 对盘问功效反向排序,---需要先排序order_by(*field),才华反转 # <8>distinct(): 从返回功效中剔除反复纪录 # <9>values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 # <10>count(): 返回数据库中匹配盘问(QuerySet)的东西数量。 # <11>first(): 返回第一笔记录 # <12>last(): 返回最后一笔记录 # <13>exists(): 如果QuerySet包罗数据,就返回True,否则返回False ---只判断是否有记录
万能的双下划线:
#---------------了不起的双下划线(__)之单表条件盘问----------------
# models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 #
# models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id即是11、22、33的数据
# models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in # exclude 不包罗指定的数据
# models.Tb1.objects.filter(name__contains="ven") #包罗的内容
# models.Tb1.objects.filter(name__icontains="ven") # icontains巨细写不敏感
# # models.Tb1.objects.filter(id__range=[1, 2]) # 范畴bettwen and #
# startswith,istartswith, endswith, iendswith,
在url文件中匹配路由和视图函数add