社区
教程
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
反馈
公告
社区推广
产品
短视频
印度
印度
一周十大热门主题
机器学习学术速递[4.2]
机器学习学术速递[4.3]
顶级恐怖!MIT数学实锤证明:ChatGPT正诱发「AI精神病」,全球14人已死亡
机器学习学术速递[4.7]
Python 量化交易实战:一个 25 年胜率 73% 的动量策略拆解
Python重构版 Claude Code 来了!
【报告】AIGC专题一:人民网-AIGC应用赋能千行百业发展报告2026(附PDF下载)
NAS部署OpenClaw,Docker也能第一时间吃上“原汁原味”小龙虾
力领互动创始人、CEO徐鸿担任2026TopDigital评委 | TopDigital 2026评...
机器学习学术速递[4.6]
关注
Py学习
»
Django
21.Django中间件(Middleware)
大耳朵儿图图
• 6 年前 • 379 次点击
中间件
中间件,顾名思义,就是处在中间的一些软件。比如匹配到了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
登录后回复