中间件是一个 Python 程序员用来处理 Django 的请求和响应的框架级别的钩子. 它是一个轻量, 低级别的插件系统, 用于在全局范围内改变 Django 的输入和输出. 每个中间件组件都负责做一些特定的功能.
说的直白一点中间件是帮助我们 Python 程序员在视图函数执行之前和执行之后都可以做一些额外的操作, 它本质上就是一个自定义类, 类中定义了几个方法, Django 框架会在请求的特定的时间去执行这些方法.
其实我们一直都在使用中间件, 只是没有注意到而已, 打开 Django 项目的 Settings.py 文件, 看到 MIDDLEWARE 配置项. 如下:
MIDDLEWARE 配置项是一个列表, 列表中是一个个字符串, 这些字符串其实是一个个类, 也就是一个个中间件.
Django 会在调用视图函数之前调用 process_view 方法.
process_template_response 和 process_exception 两个方法的触发是有条件的, 执行顺序也是倒序. 总结所有的执行流程如下:
来源: http://www.92to.com/bangong/2018/04-15/33576864.html