复习Django
一、web应用与web框架
对所有的web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是socket客户端
二、Django的MTV代表
Model(模型):负责业务对象与数据库的对象
Template(模板):负责如何把页面展示给用户
view(视图):负责页面逻辑,并在适当的时候调用model和template
三、视图函数
视图函数包含两个对象:
request---请求消息
HttpResponse---响应字符串
request.method:请求方式:GET或者POST
请求某个键下多个值,如:checkbox类型的input标签,select标签,需要用:
request.POST.getlist
request里包含哪些数据:
request.GET:GET请求的数据()
request.POST:POST请求的数据()
request.methed:请求数据方式:GET或者POST
render和redirect的区别:
render:只是 返回页面内容,但是末发送第二次请求
redirect:发送第二次请求,URL更新
聚合函数:aggregate
如:
ret=models.Book.objects.all().aggregate(priceSum=Sum("price")) ret=models.Book.objects.all().aggregate(priceAvg=Avg("price"),priceSum=Sum("price")) print(ret) # {'price__sum': Decimal('166.00')}
分组函数:annote
book_list=models.Book.objects.all().annotate(c=Count("authorlist__name")) for book_obj in book_list: print(book_obj.c)
F、Q查询
F查询:
如:
from django.db.models import F Book.objects.filter(commnetNum__lt=F('keepNum'))
Book.objects.all().update(price=F("price")+30)
Q查询:
filter等方法中的关键字参数查询都是一起进行AND的,如果你需要执行跟复杂的查询,你可以使用Q对象
对象可以调用自己的属性
Django生命周期
wsgi,中间件,路由,视图(数据,模板)