Django在哪里存储会话?

Jah*_*nov 6 python django session

我在我的项目中有这个代码,它为一个不合理的用户分配一个唯一的id并将其保存在一个会话中:

user_id = str(uuid.uuid4())[:5]
request.session['nonuserid'] = user_id
Run Code Online (Sandbox Code Playgroud)

文档说会话存储在我的数据库中.我以为它会把它保存在django_session表格中.但是,每次在会话中创建并保存唯一(上面的代码)时,不会向该表添加任何行.

然后我检查了饼干Resources.没有名字的钥匙nonusedid.一些sessionid

那么,它在哪里存储我创建的会话数据?

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'
Run Code Online (Sandbox Code Playgroud)

bru*_*ers 6

我以为它会将它保存在django_session表中.但是,每次在会话中创建并保存唯一(上面的代码)时,不会向该表添加任何行.

希望每次向当前会话添加键/值时都不会添加新行.会话的数据以序列化形式(在django_session.session_data字段中)存储,并且仅在会话启动时添加新行- 对会话的所有后续写入仅更新session_data字段的内容.