社区
教程
Wiki
注册
登录
创作新主题
社区所有版块导航
Python
python开源
Django
Python
DjangoApp
pycharm
DATA
docker
Elasticsearch
分享
问与答
闲聊
招聘
翻译
创业
分享发现
分享创造
求职
区块链
支付之战
aigc
aigc
chatgpt
WEB开发
linux
MongoDB
Redis
DATABASE
NGINX
其他Web框架
web工具
zookeeper
tornado
NoSql
Bootstrap
js
peewee
Git
bottle
IE
MQ
Jquery
机器学习
机器学习算法
Python88.com
反馈
公告
社区推广
产品
短视频
印度
印度
一周十大热门主题
从入门到入魔,100个Python实战项目练习(附答案)!
速递|时尚界ChatGPT?5000万美金重塑购物搜索,Daydream推出AI购物机器人
航空发动机用上大模型:解决复杂时序问题,性能超越ChatGPT-4o实现SOTA|上交创智复旦
顶刊《Materials Today》最新成果:机器学习+增材制造
Github 今日推荐 WebGL2神技!deck.gl:秒渲海量数据的可视化神器"
31 岁程序员,6 个月赚了 5.8 亿。 看到一个案例,在外网我搜了搜相关新闻,竟然是真...
郑州大学田芸/周震 | 下一代电池安全管理:机器学习辅助寿命预测与性能提升
Nginx和Apache要成旧爱了?PHP有了新搭档:缝合怪FrankenPHP!
【2025版附安装包】超详细Python+Pycharm安装保姆级教程,永久免费使用,Python环...
接接接!双疾病共病模式+机器学习+SHAP拿下20分的柳叶刀子刊!阜外潘湘斌&基础所姜晶梅团队牛!
关注
Py学习
»
Django
21.Django中间件(Middleware)
大耳朵儿图图
• 5 年前 • 311 次点击
中间件
中间件,顾名思义,就是处在中间的一些软件。比如匹配到了URL,但是还没有执行view函数的时候,这个时候可以执行一些代码,这个代码就是中间件。Django已经内置了许多中间件,这些中间件已经可以满足90%以上的需求,如果你还不够,还可以定义自己的中间件.
中间件流程.png
Django自带中间件解释:
django.middleware.security.SecurityMiddleware:一些安全设置,比如XSS脚本过滤。
django.contrib.sessions.middleware.SessionMiddleware:session支持中间件,加入这个中间件,会在数据库中生成一个django_session的表。
django.middleware.common.CommonMiddleware:通用中间件,会处理一些URL,比如
baidu.com
会自动的处理成
www.baidu.com
。比如/blog/111会处理成/blog/111/自动加上反斜杠。
django.middleware.csrf.CsrfViewMiddleware:跨域请求伪造中间件。加入这个中间件,在提交表单的时候会必须加入csrf_token,cookie中也会生成一个名叫csrftoken的值,也会在header中加入一个HTTP_X_CSRFTOKEN的值来放置CSRF攻击。
django.contrib.auth.middleware.AuthenticationMiddleware:用户授权中间件。他会在每个HttpRequest对象到达view之前添加当前登录用户的user属性,也就是你可以在view中通过request访问user。
django.contrib.messages.middleware.MessageMiddleware:消息中间件。展示一些后台信息给前端页面。如果需要用到消息,还需要在INSTALLED_APPS中添加django.contrib.message才能有效。如果不需要,可以把这两个都删除。
django.middleware.clickjacking.XFrameOptionsMiddleware:防止通过浏览器页面跨Frame出现clickjacking(欺骗点击)攻击出现。
Python社区是高质量的Python/Django开发社区
本文地址:
http://www.python88.com/topic/53165
311 次点击
登录后回复