2-9.中间件

django中间件

当我们需要给web后端添加一些全局相关的功能时可以使用中间件
1.校验每个用户的访问频率
2.校验每个用户的登录状态
3.用户黑名单、白名单
4.用户权限
......
django默认有七个中间件 并且还支持用户自定义中间件
自定义中间件我们可以编写五个方法

image-20211206192042440

中间件的执行流程

image-20211226141246276

自定义中间件

中间件本质就是含有五个可以修改的内置方法的类,所以自定义的时候需要做的是先继承一个Djingo提供的中间件的混合父类

image-20211206200902887

自定义中间件需要在Djingo配置文件中告诉Django到哪里去找自定义中间件

image-20211206201815248

必须掌握的方法

必须掌握的方法
process_request(self,request)
1.当请求来的时候会从上往下依次执行每一个中间件里面的该方法
如果没有则直接下一个
2.当该方法返回了HttpResponse对象 那么请求不再继续往后执行
而是直接原路返回


process_response(self,request,response)
1.当响应返回的时候会从下往上依次执行每一个中间件里面的该方法
如果没有则直接下一个 该方法默认要返回response
2.该方法返回什么浏览器就会接收到什么(也就意味着我们可以中途拦截待返回的数据做其他处理)



# process_request方法如果直接返回HttpResonse对象则直接执行process_response原理返回

image-20211206202145421

需要了解的方法

process_view
路由匹配成功之后执行视图函数之前自动触发
process_template_response
当返回的对象中含有render属性自动触发
process_exception
当视图函数报错之后会自动触发
posted @ 2021-12-26 14:14  OVO_3V3  阅读(32)  评论(0编辑  收藏  举报