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文件中注册中间件
得到结果