ORM单表操作
1.单表增删改查
from app01.models import * def index(request): return render(request,"index.html") def addbook(request): #第一种添加方式 # b=Book(name="英语基础",price=12,author="chen",pub_date="2019-10-10") # b.save() #第二种添加方式 Book.objects.create(name="java",price=10,author="jian",pub_date="2017-11-12") #由于前段返回的数据可能是一组组键值对,键与表单内容头名一致,可直接添加字典 #Book.objects.create(**dic) return HttpResponse("add success") def update(request): #第一种方式 Book.objects.filter(author="yuan").update(price=999) #首先查找在更新 #第二种修改方式,只能修改一个对象! # b=Book.objects.get(author="oldboy") # b.price=120 # b.save() 每一个字段重新赋同样值,效率很低 #b=Book.objects.filter(author="oldboy") # print(b)#<QuerySet [<Book: Book object>]> # print(type(b)) return HttpResponse("update success") def delete(req): Book.objects.filter(author="oldboy").delete() return HttpResponse("success") def select(req): # book_list=Book.objects.all() #取出所有 # print(book_list) # print(book_list[0])#Book object # book_list = Book.objects.filter(id=2) # book_list = Book.objects.all()[::2] #切片,隔一个取一个 # book_list = Book.objects.all()[::-1] #倒序取所有 # book_list = Book.objects.first() #取第一个 # book_list = Book.objects.last() #取最后一个 # book_list = Book.objects.get(id=2)#只能取出一条记录时才不报错 # ret1=Book.objects.filter(author="chen").values("name") #取出作者为oldboy的所有书名,字典集合 # ret2=Book.objects.filter(author="chen").values_list("name","price") ##列表形式 # book_list=Book.objects.exclude(author="jian").values("name","price") #取出作者非yuan的书名和价格 # book_list= Book.objects.all().values("name").distinct() ##某一个字段去重 # book_count= Book.objects.all().values("name").distinct().count() ###去重过后有几本书 # print(book_count)
2.单表模糊查询
# book_list=Book.objects.filter(price__gt=50).values("name","price") ##价格大于等于50的书的名字和价格 # book_list=Book.objects.filter(name__contains="P").values_list("name","price") ##书名中带有p的书名和价格 #name_icontains 不区分大小写 # Book.objects.filter(id_lt=100,id_gt=20) #获取id在(20,100)的数据 # Book.objects.filter(id_in=[10,24,56]) #获取id为10,24,56的数据 # Book.objects.exclude(id_in=[10,24,56]) #获取id不为10,24,56的数据 # Book.objects.filter(id_range=[1,8]) ##获取id在[1,8]的数据 # startswith-istartswith,endwith-iendwith
# book_list=Book.objects.filter(price__gt=50).values("name","price") ##价格大于等于50的书的名字和价格
# book_list=Book.objects.filter(name__contains="P").values_list("name","price") ##书名中带有p的书名和价格
#name_icontains 不区分大小写
# Book.objects.filter(id_lt=100,id_gt=20) #获取id在(20,100)的数据
# Book.objects.filter(id_in=[10,24,56]) #获取id为10,24,56的数据
# Book.objects.exclude(id_in=[10,24,56]) #获取id不为10,24,56的数据
# Book.objects.filter(id_range=[1,8]) ##获取id在[1,8]的数据
# startswith-istartswith,endwith-iendwith

浙公网安备 33010602011771号