什么是django中间件?用法及实例操作演练

2022-10-1820:55:55后端程序开发Comments743 views字数 824阅读模式

1.什么之django中间件?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

2.django中间件的作用是什么?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

如果想要修改HttpRequest或者HttpResponse,就可以通过中间件来实现。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

·登陆认证:在中间件中加入登陆认证,所有请求就自动拥有登陆认证,如果需要放开部分路由,只需要特殊处理就可以了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

·流量统计:可以针对一些渲染页面统计访问流量。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

·恶意请求拦截:统计IP请求次数,可以进行频次限制或者封禁IP。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

3.django中间件怎么设置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

1)在当前根目录文件夹下新建一个文件夹名为middleware文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

什么是django中间件?用法及实例操作演练文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

2)新建两个py文件分别是__init__.py和mymiddleware.py文件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

什么是django中间件?用法及实例操作演练文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

3)在mymiddleware.py文件中设置中间件:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

第一步,引入中间件的方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

什么是django中间件?用法及实例操作演练文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

第二步,定义中间件方法(其中None或者没有写return返回值代表不拦截,否则代表拦截):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

①process_request (self,request)
执行路由之前被调用,在每个请求上调用, 返回None或HttpResponse对象文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html


②process_view (self,request,callback, callback_args,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

callback_kwargs)
调用视图之前被调用,在每个请求上调用, 返回None或HttpResponse对象文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

③process_response (self,request,response)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

所有响应返回浏览器被调用,在每个请求上调用,返回HttpResponse对象文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

什么是django中间件?用法及实例操作演练文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

4)在setting.py中设置middleware进行注册:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

什么是django中间件?用法及实例操作演练文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

注意事项,如果出现以下错误提示,将setting.py中的{}改为[]即可。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

什么是django中间件?用法及实例操作演练文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28364.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/28364.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定