【发布时间】:2014-11-07 11:25:37
【问题描述】:
此页面:https://docs.djangoproject.com/en/1.7/ref/middleware/#middleware-ordering 具有/暗示以下顺序(问题 #1: 我是否正确假设列表顺序正确?)
- UpdateCacheMiddleware
- GZipMiddlewaree
- 有条件的GetMiddleware
- 会话中间件
- LocaleMiddleware
- 通用中间件
- CsrfViewMiddleware
- 身份验证中间件
- 消息中间件
- FetchFromCacheMiddleware
- FlatpageFallbackMiddleware
- 重定向FallbackMiddleware
https://docs.djangoproject.com/en/dev/topics/http/middleware/#hooks-and-application-order 处的图形似乎表明 CommonMiddleware 应该在 SessionMiddleware 之前:
在 Django 1.5 中,django-admin.py startproject 生成 (https://docs.djangoproject.com/en/1.5/topics/http/middleware/#hooks-and-application-order)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
从 1.6 开始的版本生成 (https://docs.djangoproject.com/en/1.6/topics/http/middleware/#hooks-and-application-order)
MIDDLEWARE_CLASSES = (
'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',
)
问题 #2:我是否应该更改 1.5 项目中的顺序以使 SessionMiddleware 在 CommonMiddleware 之前?
问题 #3: 切换订单时请求的处理方式有何不同?
【问题讨论】: