标签:错误信息 style 函数 注册 data- str process turn 关键字
process_request(self,request)
process_view(self, request, view_func, view_args, view_kwargs)
process_template_response(self,request,response)
process_exception(self, request, exception)
process_response(self, request, response)
from django.utils.deprecation import MiddlewareMixin class MyMiddle_1(MiddlewareMixin): def process_request(self, request): print(‘MyMiddle_1 中的 process_request‘) def process_response(self, request, response): print(‘MyMiddle_1 中的 process_response‘) return response class MyMiddle_2(MiddlewareMixin): def process_request(self, request): print(‘MyMiddle_2 中的 process_request‘) def process_response(self, request, response): print(‘MyMiddle_2 中的 process_response‘) return response
MIDDLEWARE = [ ‘django.middleware.security.SecurityMiddleware‘, ‘django.contrib.sessions.middleware.SessionMiddleware‘, ‘django.middleware.common.CommonMiddleware‘, ‘django.middleware.csrf.CsrfViewMiddleware‘, ‘django.contrib.auth.middleware.AuthenticationMiddleware‘, ‘django.contrib.messages.middleware.MessageMiddleware‘, ‘django.middleware.clickjacking.XFrameOptionsMiddleware‘, ‘app01.mymiddle.MyMiddle_1‘, ‘app01.mymiddle.MyMiddle_2‘ ]
from django.shortcuts import render, HttpResponse def test(request): print(‘这儿是视图函数‘) return HttpResponse(‘ok‘)
然后去浏览器访问这个视图,pycharm 终端会打印下面的内容
MyMiddle_1 中的 process_request MyMiddle_2 中的 process_request 这儿是视图函数 MyMiddle_2 中的 process_response MyMiddle_1 中的 process_response
执行时间:在视图函数执行之前执行
参数:request
-----是视图函数中用到的request
执行顺序:按照在MIDDLEWARE
中注册的顺序从上往下执行
返回值:None
-----正常流程往后走;HTTPResponse
对象-----当前中间件后面中间件的process _request
、process_response
方法和视图函数都不会执行,只执行当前中间件的process _response
方法及之前的中间件的process _response
方法
2.2 process_response
执行时间:在视图函数执行之后执行
参数:request
-----> 是视图函数中用到的 request
response
---->是视图函数中返回的 response
执行顺序:按照在MIDDLEWARE
中注册的顺序从下往上执行
返回值:必须是response
对象
2.3 process_view
执行时间:在process_request
方法及路由匹配之后、在视图函数执行之前执行
参数:
view_func
-------> 要执行的视图函数
view_args
-------> 视图函数的位置参数
view_kwargs
-------> 视图函数的关键字参数
执行顺序:按照在MIDDLEWARE
中注册的顺序从上往下执行
返回值:None
-----正常流程往后走;
2.4 process_exception
执行时间:在视图函数之后,process_response
之前,有异常时才会触发
参数:exception-----错误信息对象
执行顺序:按照在MIDDLEWARE
中注册的顺序从下往上执行
返回值:None-------正常往后走;返回HTTPResponse
对象,注册顺序之前的中间件的process_exception
方法不会执行,会执行所有中间件的process_response
方法
2.5 process_template_response
执行时间:在视图函数之后,process_response
之前,response
对象有render
方法时才会触发
参数
执行顺序:按照注册顺序倒着执行
返回值:返回response
标签:错误信息 style 函数 注册 data- str process turn 关键字
原文地址:https://www.cnblogs.com/rongge95500/p/10009864.html