Django中间件

什么是中间件?

			在全局对Django的请求做自定义操作。

中间件能做什么?

			视图函数能做的事就能提到中间件去做。

例:登陆验证、访问限制

自定义中间件:

Django中间件的五个方法:

中间件 参数 按Django中间件注册的(正/反)序执行 执行时间 返回值
process_request(self, request) request:和视图函数中的request是同一个对象 正序 在视图函数之前执行 返回None:请求继续向后执行;返回响应对象,请求直接结束
process_response(self, request, response) request:和视图函数中的request是同一个对象; response:视图函数返回的response 反序 返回响应后执行 返回的必须是response对象
process_view(self, request, view_func, view_srgs, view_kwargs) request:请求;view_func:要执行的视图函数;view_args:视图函数的位置参数;view_kwargs:视图函数的关键字参数 正序 在中间件的process_request方法之后视图函数之前执行 返回None:请求继续向后执行; 返回响应对象:直接走process_request
process_template(self, request, response) 反序 在视图函数返回对象带有render方法时执行 返回response
process_exception(self, request, exception) exception;异常 反序 只要有中间件中的process_exception返回响应,就不再向后走了 返回None:请求继续向后执行

Django 请求流程图

Django中间件_第1张图片

你可能感兴趣的:(Django)