中间件
Posted perfey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中间件相关的知识,希望对你有一定的参考价值。
中间件
1. 什么是中间件? 中间件是一个类。用来处理Django的请求和响应的框架级别的钩子。 中间件中定义方法。 2. 五个方法:(process_request、process_response) 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) 1. process_request 1. 执行时间 在视图函数之前执行 2. 参数 request 和视图中的request是同一个 3. 返回值 返回None 返回response对象 不执行后面中间的process_request方法和视图 直接执行当前值中间件的process_response方法 4. 执行顺序 按照注册的顺序执行 2. process_response 1. 执行时间 在视图函数之后执行 2. request, response request 和视图中的request是同一个 response 返回的response对象 3. 返回值 返回response对象 4. 执行顺序 按照注册的倒序执行 3. process_view 1. 执行时间 在视图函数之前,process_request之后执行 2. 参数 view_func 将要执行的视图函数 view_args 视图函数的可变长位置参数 view_kwargs 视图函数的可变长关键字参数 3. 返回值 返回 None 正常执行 返回 response对象 不执行后面的process_view和视图,直接执行所有中间件的process_response方法 4。执行顺序 按照注册的顺序执行 4. process_exception(有条件触发:有错误才执行) 1. 执行时间 在视图函数之后,process_response之前执行 2. 参数 exception 错误对象 3. 返回值 返回 None 不对错误进行处理,交给下一个中间件进行处理 返回 response对象 下一个中间的process_exception不执行,直接执行所有中间件的process_response方法 4. 执行顺序 按照注册的倒序执行 5. process_template_response(条件触发:视图返回的response有render方法) 1. 执行时间 在视图函数之后,process_response之前执行 2. 参数 3. 返回值 返回 response对象 4. 执行顺序 按照注册的倒序执行,执行完所有的process_template_response方法后执行response.render方法
以上是关于中间件的主要内容,如果未能解决你的问题,请参考以下文章
从没有中间转换变量的片段中观察 ViewModel LiveData