中间件是处理django的请求和响应的框架级别的钩子,本质是一个类,直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作。由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。定义的中间件需要注册。
中间件可以被看作是一条“管道”,请求从管道的一端进入,并在通过一系列的中间件处理之后到达应用程序,响应从应用程序出发,通过一系列中间件处理之后到达客户端。
Django中间件按照注册的顺序执行。中间件的注册顺序可以在settings.py文件中进行配置。Django中默认加载的中间件是按照官方建议的顺序进行注册的,我们可以自己根据需要调整中间件的注册顺序。如果一个中间件依赖于另一个中间件,在进行注册时,需要将依赖的中间件放在需要它的中间件之前。
中间件定义的五个方法
- process_request(self,request)
- process_response(self, request, response)
- process_view(self, request, view_func, view_args, view_kwargs)
- process_exception(self, request, exception)
- process_template_response(self,request,response)
process_request(self, request)
在执行视图函数之前执行