【发布时间】:2013-04-02 19:18:40
【问题描述】:
我有一个带有名为 'app' 的应用程序的香草 django 项目。它有views.py 和middleweres.py。
#views.py
from django.http.response import HttpResponse
def home(request):
return HttpResponse('')
#settings.py
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',
'app.middlewares.M',
)
#middlewares.py
class M(object):
def process_request(self, request):
request.session['a']='a'
Django 在每次请求时都会在 db 中的会话表中添加一行。为什么?
UPD:我还是很困惑。我为这个问题做了一个 github 项目:https://github.com/vinograd19/django-session-problem/ 你可以在那里找到我的代码并在你的机器上运行它
【问题讨论】:
-
你能转储会话数据吗?您是否知道您正在修改每个 process_request 中的会话?
-
有 'original' session {'_auth_user_id': 1L, '_auth_user_backend': 'django.contrib.auth.backends.ModelBackend','a':'a'} 和其他像 {' a':'a'}
-
在没有 app.middlewares.M 的情况下也会发生这种情况吗?