django 配置文件MIDDLEWAre
时间: 2023-11-29 21:05:50 浏览: 114
django 配置
Django 的 Middleware 是一个类似于插件的组件,它可以对 Django 请求和响应的处理过程进行干预和修改,比如添加 HTTP Header、处理请求前后的逻辑、修改响应状态等。Django 中内置了一些 Middleware,同时也可以自己编写 Middleware。
在 Django 的配置文件 settings.py 中,可以通过 MIDDLEWARE 设置 Middleware 的顺序和启用状态。MIDDLEWARE 是一个列表,其中每个元素都表示一个 Middleware 的路径。例如:
```
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',
]
```
上面的配置表示启用了 Django 内置的一些 Middleware,它们的顺序是按照列表的顺序依次执行的。其中,`django.middleware.security.SecurityMiddleware` 是 Django 1.10 新增的 Middleware,用于提供一些基本的安全保护,比如防止跨站点请求攻击(CSRF)、点击劫持(Clickjacking)等。
需要注意的是,Middleware 的顺序非常重要,如果顺序不正确可能会导致一些问题。比如,如果 `django.middleware.csrf.CsrfViewMiddleware` 在 `django.contrib.auth.middleware.AuthenticationMiddleware` 的前面,可能会导致用户无法登录。因为在用户登录时,Django 会生成一个 CSRF Token,如果 CsrfViewMiddleware 已经执行完了,那么这个 Token 就不会再被生成了。所以,正确的顺序是 CsrfViewMiddleware 在 AuthenticationMiddleware 的后面。
阅读全文