Django的中间件
时间:2022-07-24
本文章向大家介绍Django的中间件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
django.middleware.security.SecurityMiddleware
安全中间件, 为请求/响应周期提供了一些安全性增强。
django.contrib.sessions.middleware.SessionMiddleware
回话中间件,可以基于每个站点访问者存储和检索任意数据,它在服务器端存储数据。
django.middleware.common.CommonMiddleware
通用中间件
会处理一些URL, 比如;baidu.com会自动处理成www.baidu.com, 比如 /wyc/blog 会自动处理成 /wyc/blog/
django.middleware.csrf.CsrfViewMiddleware
跨站请求伪造,通过向POST表单添加隐藏的表单字段并检查请求的正确值来增强对跨站请求伪造的保护。
django.contrib.auth.middleware.AuthenticationMiddleware
验证中间件,将user代表当前登录用户的属性添加到每个传HttpResponse对象。
django.contrib.messages.middleware.MessageMiddleware
消息中间件,启用于cookie和会话的消息支持
django.middleware.clickjacking.XFrameOptionsMiddleware
点击劫持保护
当恶意站点诱使用户单击他们已加载到隐藏框架或iframe中的另一个站点的隐藏元素时,会发生这种类型的攻击
django.middleware.cache.UpdateCacheMiddleware
django.middleware.cache.FetchFromCacheMiddleware
开启全站缓存范围缓存,如果开启了这些缓存,任何一个由Django提供的页面将会被缓存,缓存时长可以在CACHE_MIDDLEWARE_SECONDS中配置定义。
整体运行流程:
1、用户通过浏览器请求一个页面 2、请求到达Request Midddlwraes中间件对request做一些预处理或直接response请求
3、 URLConf通过urls.py文件和请求的URL找到相应的View
4、 View Middleware被访问它同样可以对request做一些处理或者直接返回response
5、 调用Views中的函数
6、views中的方法可以选择性的通过manager完成的
7、所有的Model -> to -> DB的交互都是通过Models访问底层的数据
8、如果需要,Views可以使用一个特殊的Context
9、Context被传给Template用来生成页面
- 使用WinSCP软件在windows和Linux中进行文件传输
- 线程安全的Generic Dictionary
- Python 项目实践三(Web应用程序)第五篇
- CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4
- Python 项目实践三(Web应用程序)第四篇
- 负载均衡环境下缓存处理
- WordPress Ajax 异步加载 自定义评论表情
- “分期网”域名fenqi.wang以16888元成交
- Python 项目实践三(Web应用程序) 第三篇
- Python 项目实践三(Web应用程序)第二篇
- 第一个IronPython程序(之一)
- mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法
- 安装 IronPython
- Python 项目实践三(Web应用程序)第一篇
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- csv转字典
- 实战|记录一次渗透测试项目
- 面向对象编程进阶
- 实战技巧 | 知其代码方可审计
- 进程、线程、协程篇
- 基于pandas数据预处理基础操作
- Python中字典的详细用法
- Android抓包总结-HTTPS单向认证&双向认证突破
- 2020 ISG“观安杯”最高分值web题的解题思路大放送
- 详解 JS 压缩图片
- LeetCode 1553. Minimum Number of Days to Eat N Oranges
- 异步IO数据库队列缓存
- markdown转为pdf文件
- [已解决]报错:Required request body is missing
- jupyter notebook修改默认路径和浏览器