社区
教程
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
反馈
公告
社区推广
产品
短视频
印度
印度
一周十大热门主题
最后三天!ChatGPT Plus 优惠价即将消失,错过就要多花钱
17个工作必备的Python自动化代码
NAR | 江南大学邓禹等团队揭示深度学习引导大肠杆菌核心启动子的可编程设计
GitHub Trending 日报【2025-09-17】
机器学习力场培训:数据采集、力场构建、机器学习原子势、力场、n2p2、神经网络力场、图神经网络、Sc...
夏晨斌:一个基于Python程序设计的社会危险性量化评估构想初步
2025必看AI干货!《大模型/AIGC/GPT-4/Transformer/DL/KG/NLP/C...
Claude记忆系统逆向研究!与ChatGPT完全相反!网友:放弃广告了?Claude深夜祭出记忆选...
顶刊必杀技!催化计算8大专题培训:均相/异相催化、机器学习、单原子、金属催化、非金属催化、LDH+M...
GitHub高星精选!十大MCP开源项目,让AI开发效率翻倍!
关注
Py学习
»
Django
21.Django中间件(Middleware)
大耳朵儿图图
• 5 年前 • 322 次点击
中间件
中间件,顾名思义,就是处在中间的一些软件。比如匹配到了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
322 次点击
登录后回复