• Django中间件

    中间件是一个插件系统,嵌入在 Django 的 Request 和 Response 之间执行,可以对输入和输出内容作出修改,它是处理所有请求与响应的通用框架组件。

    1. Django默认自带中间件

    中间件本质上是一个 Python 类,类里定义了一些函数,这些函数在视图函数执行的前后调用,它们被形象的称之为“钩子函数”。Django 不仅向我们提供了丰富的中间件,而且也可以使用 Django 的中间件接口来实现自定义中间件。下面就是创建 Django 项目后,默认生成的中间件,配置在 settings.py 文件中。

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    

    1)中间的执行与响应顺序

    项目创建后,所有中间件都是默认激活的状态。当然你可以通过代码注释,将某个中间件关闭,这需要您根据具体的业务需求来操作 。Django 同时规定了中间件的执行顺序与配置关系,按照如上列表,从上至下行依次执行每一个中间件,但是返回响应结果的时候,整好相反,是从下至上。

    如图所示,从浏览器发出一个请求 Request,最后得到一个 HttpResponse 响应 ,这个请求传递与响应返回的过程如下图所示:

    中间件执行与响应示意图
    图1:中间的执行与响应顺序
     

更多...

加载中...