django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,全局修改Django的输入或输出
中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。
如果你想修改请求,例如被传送到view中的HttpRequest对象。 或者你想修改view返回的HttpResponse对象,这些都可以通过中间件来实现
Django默认的中间件:

可能你还想在view执行之前做一些操作,这种情况就可以用 middleware来实现。
可以自己定义中间件,继承django.utils.deprecation.MiddlewareMixin 这个类,然后重写钩子方法
可以重写的五个钩子方法
1、process_request(self,request)
2、process_view(self, request, callback, callback_args, callback_kwargs)
3、process_template_response(self,request,response)
4、process_exception(self, request, exception)
5、process_response(self, request, response)
以上方法的返回值可以是None或一个HttpResponse对象,如果是None,则继续按照django定义的规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回给用户。
本文详细介绍了Django中如何利用中间件介入请求处理,定制HttpRequest和HttpResponse,以及五个关键钩子方法的使用。了解Django默认中间件并掌握自定义开发技巧。
896





