python - Django 在哪里存储 session ?

标签 python django session

我的项目中有这段代码,它为匿名用户分配了一个唯一的 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/

相关文章:

python - python中随机选择

python - 为什么 PyCharm 在某些 Numpy 导入时会给出 Unresolved reference 错误?

python - 使用Python从具有两列或三列数据的图像中使用OCR读取图像中的文本

python - OSError : [WinError 123] The filename, 目录名,或卷标语法不正确: '<frozen importlib._bootstrap>' (Django)

java - Loopj HTTP 库 session ID cookie 不起作用

java - struts2中如何动态获取session对象

python - 如何使函数 "make_archive"包含python中的父目录

Django级联保存?

django - 如何在表单中使用 GeoDjango Pointfield?

node.js - NodeJS 从 sessionStore 检索 session 列表并销毁用户之前的 session