F查询和Q查询
# Create your views here.
from django.db.models import Avg, Min, Max, Sum, F, Q
from app_01.models import Book
from app_01 import models
from datetime import datetime
from django.http import HttpResponse
from django.shortcuts import render
def date_op(req):
# F: F() 来做这样的比较
# Book.objects.all().update(price=F('price') + 20)
# Q
num = models.Book.objects.filter(Q(id=3) | Q(title='python') & Q(price__lt=100), color='blue')
print(num)
# ---- 聚合查询
# num1 = Book.objects.all().aggregate(Avg('price'), Max('price'), Min('price'))
# print(num1)
# ---- 分组查询
# sum1 = Book.objects.values('book_to_author__author__name').annotate(Sum('price'))
# print(sum1)
# 示例2:统计出每个出版社的最便宜的书的价格
# num2 = models.Publish.objects.values('name').annotate(Min('book__price'))
# print(num2)
# -----
# 关联查询: 双下划线:———— (如:book__title)
# 查询多对多
# author_name = models.Book_To_Author.objects.filter(book__title='python').values('author__name')
# print(author_name)
# name = models.Publish.objects.filter(book__title='python').values('name')
# print(name)
#
# title = models.Book.objects.filter(publisher__name='河南出版社').values('title')
# print(title)
# city = models.Book.objects.filter(title='python').values('publisher__city')
# print(city)
# 出版社为“河南出版社”的所有名
# obj = models.Publish.objects.filter(name="河南出版社")[0]
# print(obj.book_set.values('title').distinct())
# print(obj.book_set, type(obj.book_set))
# 书名为go的出版社的地址
# obj_set = models.Book.objects.filter(title='go')[0]
# print(obj_set.publisher.name)
# print(obj_set.publisher.city)
# ----
# 迭代器(性能)
# if obj_set.iterator():
# pass
# -- for循环
# obj_set = models.Book.objects.filter(id=3)
# for obj in obj_set:
# print(obj.title)
#
# obj_set.update(title='js')
# for obj in obj_set:
# print(obj.title)
# 修改
# models.Book.objects.filter(id=3).update(price=30)
# 删除
# models.Book.objects.filter(id=2).delete()
# models.Book_To_Author.objects.create(
# book_id=1,
# author_id=2,
# )
# dic1 = {"title": "", "price": 35, "color": "yellow"}
# Book.objects.create(**dic1)
# Book.objects.create(
# title="li漂流记",
# price=1,
# color="yellow",
#
# publisher_id=4,
# )
# book = models.Book.objects.filter(id=2)
# price = book.values("price")
# # 某些书绑定某些作者
# book = models.Book.objects.filter(id=2)[0]
# authors = models.Author.objects.filter(id_gt=2)
# # 绑定关系
# book.author.add(*authors)
# # 取消关系
# book.author.remove(*authors)
return HttpResponse("ok")