增加记录
def add(request): # 添加记录的方法1 # book1=Book(title="北京折叠",price="11.11",pub_date="2012-12-12",publish='苹果出版社') # book1.save() # 添加记录的方法2 create返回记录对象 # book_obj=Book.objects.create(title="放风筝的人",price="11.11",pub_date="2017-12-12",publish='苹果出版社') # print(book_obj.title) # print(book_obj.price) # print(book_obj.pub_date) return HttpResponse("添加成功")
查询记录
def query(request): ''' queryset:列表里存对象 调不了属性 model对象 :param request: :return: ''' # 1. all() # book_list = Book.objects.all() #queryset数据类型[obj,obj....] # print(book_list) # for obj in book_list: # print(obj.title) # 2. filter() 返回的是一个queryset数据类型对象,【model_obj,model_obj】 # ret=Book.objects.filter(title="北京折叠") # print(ret) # 3.first,last,queryset支持切片操作 # obj1=Book.objects.all().first() # obj2=Book.objects.all().last() # # obj3=Book.objects.all()[1:2] # print(obj1) # print(obj2) # # obj4=Book.objects.all()[-1] # 4.get方法 返回的就是一个model对象,有且只有一个才有意义 # obj =Book.objects.get(nid=1) # print(obj.title) # 5.exclude 排除 等同于filter # ret = Book.objects.exclude(nid=1) # print(ret) # 6.order_by排序 # ret=Book.objects.order_by('price') # print(ret) # 7.reverse()反向排序 # ret=Book.objects.order_by('price').reverse() # 8 count # ret=Book.objects.all().count() # print(ret) # 9 exists # ret=Book.objects.all().exists() # if ret: # print('ok')
# 10 返回query,列表里套字典,每本书都是字典 # ret = Book.objects.all().values("title", "price") # print(ret) # 11 values_list 列表里套元祖 # ret = Book.objects.all().values_list('title','price') # print(ret) # 12 distinct(去重) # 单表查询之模糊查询 # Book.objects.filter(price__gt=100) # Book.objects.filter(price__lt=100) # ret=Book.objects.filter(price__lte=100) # print(ret) # Book.objects.filter(price__gte=100) # Book.objects.filter(price__in=[100,200,300]) # Book.objects.filter(price_range=[100,233]) # Book.objects.filter(title__startswith="北") # Book.objects.filter(title__contains="传") return HttpResponse("查询成功")
更改记录
def change(request): nid=1 Book.objects.filter(nid=nid).update(price=1000) return HttpResponse('修改成功')
删除记录
def delbook(request,id): Book.objects.filter(nid=id).delete() return HttpResponse("删除成功")
点击MySQL ,下载,apply
作业1: 查询练习:
1 查询老男孩出版社出版过的价格大于200的书籍
Book.objects.filter(price__gt=200,is_pub=True,publish="老男孩出版社")
2 查询2017年8月出版的所有以py开头的书籍名称
Book.objects.filter(title__startswith="py",pub_date__year=2017,pub_date__month=8)
3 查询价格为50,100或者150的所有书籍名称及其出版社名称
Book.objects.filter(price__in=[50,100,150]).values('title','publish')
4 查询价格在100到200之间的所有书籍名称及其价格
Book.object.filter(price__range=[100,200]).values('title','price')
5 查询所有人民出版社出版的书籍的价格(从高到低排序,去重)
Book.object.filter(publish="人民出版社").order_by("price").reverse().values('price').distinct()
6 查询价格大于200的书籍的个数
Book.object.filter(price__gt=200).count()
7 查询价格不等于100的所有书籍
Book.object.exclude(price=100)
8 查询苹果出版社出版的书籍中的第3-7本(前提存在足够数量的书籍)
Book.object.filter(publish="苹果出版社")[2:7]