复习知识:
from django.utils.decorators import method_decorator
这个是让装饰器能提供给类下面的函数使用的
@method_decorator
def foo():
return ...
今日内容:
中间件:
1、如何自定义一个中间件:
1.把按照格式要求写一个类
2.把我们写好的类在settings.py注册到MIDDLEWARE配置项的列表中;
2、每一个中间件中五个可以被重写的方法:
1.process_request(self,request):
1.何时执行:
在urls.py之前执行
2.执行的顺序
按照在列表中注册的顺序依次执行
3.返回值
1.返回None,不做任何处理直接进行下一步
2.返回相应对象,直接跳出(后续中间件的process_request、不执行urls.py和view.py)返回响应;
2.process_view(self,request,view_func,view_args,view_kwargs)
1.执行时间
在urls.py之后和在执行真正的视图函数之前
2.执行顺序
按照在列表中注册的顺序依次执行
3.返回值
1.返回None,放行
2.返回响应对象,就直接跳出,倒序依次执行所有中间件的process_request方法
3.process_template_request(self,request,response)
执行:
会在视图函数执行完之后执行,也就是需要有return render执行后他才会执行,或者表明他有个template_response对象;
4.process_exception(self,reqeust,exception)
执行:
当views里面出现了exception就会执行
5.process_response(self,request,response)
1.何时执行
在views.py返回响应对象之后执行
2.执行的顺序
按照在列表中注册的倒序依次执行
3.返回值
必须要有返回值,返回要是相应对象
python—day63 中间件
猜你喜欢
转载自www.cnblogs.com/kermitjam/p/9229513.html
今日推荐
周排行