| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> ?Django边学边记——中间件? -> 正文阅读 |
|
[Python知识库]?Django边学边记——中间件? |
特点Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,用于全局修改Django的输入或输出。 每个中间件组件负责做一些特定的功能。中间件全部注册在setting.py中的?MIDDLEWARE?列表中。 中间件是可调用的,它接受请求并返回响应,就像视图一样。 为了在于不同的阶段执行,对输入或输出进行干预,我们可以编写自己的中间件。 使用1.在项目中创建一个中间件包>创建中间件py文件?
2.编写中间件程序代码 一般习惯于将中间件写成一个类 :
每个自定义的中间件类 必须有_init__ 和 __call__ 两个方法,写法也比较固定。一般按照文档说明中的格式套用即可,只需在相应位置加上自己的控制代码。 get_response参数是必需的,这个参数指的是下一个中间件或者view函数(如果是最后一个中间件)。 中间件也可以被写成这样的函数(习惯用类):
3. 注册中间件模块 在项目setting.py 的MIDDLEWEAR列表 中注册自定义中间件模块
中间件顺序与分层在请求阶段,在调用视图之前,Django 按照定义的顺序应用中间件?MIDDLEWARE,自顶向下。 你可以把它想象成一个多道门的房子:每个中间件类都是一个“门”,视图在房子的最中间。如果请求通过所有门(每一个调用? 如果其中一道门决定不让进,并返回响应而不调用get_response,那么这道门后面的门都不会看到请求或响应。响应将只通过请求传入的相同层返回。? 经典流程图如下: 其他中间件钩子除前面讲到的,还有2种会用到的中间件方法: 1.异常处理:当视图抛出异常时调用,在每个请求上调用,返回一个HttpResponse对象
2.处理模板响应前:在每个请求上调用,返回实现了render方法的响应对象
实例应用1.实现每个IP向 /pw 开头的地址 最多请求5次
2.实现让有权限的管理员可以在DEBUG关闭的情况下看到错误信息
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 5:44:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |