中间件(MiddleWare)
定义
面向切面编程(IoC), 为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性,其它的MVC框架也有这个功能。它是一个轻量,低级别的插件系统,用于全局范围内改变Django的输入,输出。每个中间件组件都负责做一些特定的功能。
内置的六个切点(钩子函数)
- _ _init _ _初始化函数:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件。
- process_request(self,request):在执行视图前被调用,多个中间件情况,按照setting.py中注册顺序执行。
- 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):所有响应返回浏览器之前调用,按照注册顺序倒叙执行。
每个方法都可以返回None或者返回HttpResponse对象。如果是none,继续按照django定义的向下执行,如果返回是Httpresponse对象,则直接将该对象返回给用户。
自定义中间件
规则
1.要继承MIDDLEWAREMIXIN类,
2.要重写父类方法
3.将类添加到setting.py文件中MIDDLEWARE配置项里
实例之——登录验证
1.setting.py 文件在MIDDLEWARE中注册
MIDDLEWARE = [
'dja