# """ # 中间件的定义: wsgi之后,urls.py 之前,在全局操作Django请求和响应的模块 # 中间件的使用: 1. process_request(self,request) 执行顺序: 按照注册的顺序( 在settings.py 中设置从上到下的顺序 ) 执行时间: 请求从wsgi(解析之后)拿到之后 返回值: 返回None,继续执行后续的中间件的process_request方法 返回response,不执行后续的中间件的process_request方法 2. process_response 执行顺序: 按照注册顺序的倒序( 在 settings.py里面设置中 ,从下到上的顺序 ) 执行时间: 请求有响应的时候 返回值: 必须返回一个request对象 3. process_view(self,request,view_func,view_args,view_kwargs) 执行顺序: 按照注册的顺序(settings.py中从上到下) 执行时间: 在 urls.py 中找到对应关系后 在执行正在的视图函数之前 返回值: 返回None,继续执行后续的中间件的process_view方法 返回response 4. process_exception(self,request,exception) 执行顺序: 按照注册的倒序(settings.py中从下到上) 执行时间: 视图函数中抛出异常才会执行 返回值: 返回None,继续执行后续的中间件的process_exception方法 返回response 5. process_template_response(self,request,response) 执行顺序: 按照注册的倒序(settings.py中从下到上) 执行时间: 在视图函数执行完毕后,在执行视图函数返回的响应对象的render方法之前 返回值: 返回None,继续执行后续的中间件的process_template_response方法 返回response Django调用,注册的中间件里面五个方法的顺序: 1. process_request urls.py 2. process_view view 3. 如果有异常就执行,process_exception 4. 如果视图函数返回的响应有render方法,就执行 process_template_response 5. process_response """#