Django--中间件

首先看一下django的生命周期图

中间件处在wsgiref和路由系统之间,也就是说所有从浏览器发送到服务器的请求都必须经过中间件。

而中间件的作用又是什么呢?

中间件是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能

而中间件到底是什么呢?

中间件其实就是一个类,这个类中一共有5个方法,分别是

process_request:请求来的时候从上往下依次执行每一个中间件里面的process_request
process_response :响应走的时候会从下往上依次执行每一个中间件里面的process_response方法

process_view:路由匹配成功执行视图之前自动触发(从上往下依次执行)
process_exception:当视图函数报错了,自动触发(从下往上依次执行)
process_template_response:视图函数返回的对象有一个render()方法
(或者表明该对象是一个TemplateResponse对象或等价方法)(从下往上依次执行)

中间件的执行流程

我们特可以自己写一个中间件来验证一下

首先在项目根目录创建一个py文件

 创建完成后到settings文件中注册中间件

 

得到结果

原文地址:https://www.cnblogs.com/duGD/p/11218551.html