我的项目中有这段代码,它为匿名用户分配了一个唯一的 ID 并将其保存在 session 中:
user_id = str(uuid.uuid4())[:5]
request.session['nonuserid'] = user_id
Documentation说 session 存储在我的数据库中。我认为它会将它保存在 django_session
表中。但是,每次在 session 中创建并保存一个唯一值(上面的代码)时,该表中都不会添加任何行。
然后我检查了 Resources
中的 cookie。没有名称为 nonusedid
的 key 。只是一些 sessionid
那么,它在哪里存储我创建的 session 数据?
Settings.py的相关部分
MIDDLEWARE_CLASSES = (
# Default Django middleware.
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
DJANGO_APPS = (
# Default Django apps:
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
最佳答案
I thought it would save it in django_session table. However, everytime a unique is created and saved in session(above code), no row is added to that table.
希望每次向当前 session 添加键/值时都不会添加新行。 Session 的数据以序列化的形式存储(在 django_session.session_data
字段中),只有当一个新 session 开始时才会添加一个新行 - 所有后续写入到 session只会更新 session_data
字段的内容。
关于python - Django 在哪里存储 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30342299/