中间件|超详细!django中间件用法以及实例操作

中间件|超详细!django中间件用法以及实例操作

文章图片

中间件|超详细!django中间件用法以及实例操作

文章图片

中间件|超详细!django中间件用法以及实例操作

文章图片


1.什么之django中间件?
Django中的中间件是一个轻量级、底层的插件系统 , 可以介入Django的请求和响应处理过程 , 修改Django的输入或输出 。 中间件的设计为开发者提供了一种无侵入式的开发方式 , 增强了Django框架的健壮性 。
我们可以使用中间件 , 在Django处理视图的不同阶段对输入或输出进行干预 。
2.django中间件的作用是什么?
如果想要修改HttpRequest或者HttpResponse , 就可以通过中间件来实现 。
·登陆认证:在中间件中加入登陆认证 , 所有请求就自动拥有登陆认证 , 如果需要放开部分路由 , 只需要特殊处理就可以了 。
·流量统计:可以针对一些渲染页面统计访问流量 。
·恶意请求拦截:统计IP请求次数 , 可以进行频次限制或者封禁IP 。
3.django中间件怎么设置
1)在当前根目录文件夹下新建一个文件夹名为middleware

2)新建两个py文件分别是__init__.py和mymiddleware.py文件

3)在mymiddleware.py文件中设置中间件:
第一步 , 引入中间件的方法

第二步 , 定义中间件方法(其中None或者没有写return返回值代表不拦截 , 否则代表拦截):
①process_request (self , request)
执行路由之前被调用 , 在每个请求上调用 ,返回None或HttpResponse对象
②process_view (self , request , callback , callback_args ,
callback_kwargs)
调用视图之前被调用 , 在每个请求上调用 ,返回None或HttpResponse对象
【中间件|超详细!django中间件用法以及实例操作】③process_response (self , request , response)
所有响应返回浏览器被调用 , 在每个请求上调用 , 返回HttpResponse对象

4)在setting.py中设置middleware进行注册:

注意事项 , 如果出现以下错误提示 , 将setting.py中的{改为[
即可 。