如何在Django中设置和获取会话(Session)数据

2023-04-11 00:00:00 会话 设置 获取

在Django中,我们可以使用session框架来创建和管理会话数据。以下是如何设置和获取会话数据的详细步骤:

  1. 在 settings.py 文件中配置 session 相关参数。
# settings.py

# session 存储引擎,这里使用 cache 存储
SESSION_ENGINE = "django.contrib.sessions.backends.cache"

# session 存储器(缓存),选择缓存就需要指定相应配置
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

# session 的 cookie 名称
SESSION_COOKIE_NAME = 'sessionid'

# session 过期时间(秒)(默认值 2 周)
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
  1. 在 views.py 中设置会话数据。
# views.py

from django.shortcuts import render

def set_session(request):
    request.session['pidancode'] = '皮蛋编程'
    return render(request, 'index.html')
  1. 在 views.py 中获取会话数据。
# views.py

from django.shortcuts import render

def get_session(request):
    pidancode = request.session.get('pidancode')
    return render(request, 'index.html', {'pidancode': pidancode})
  1. 在模板中展示会话数据。
<!-- index.html -->

<h1>{{ pidancode }}</h1>

在这个例子中,我们使用 Django 内置的 get 方法从会话数据中获取 pidancode 值,并将其呈现在模板中的 H1 HTML 标题中。

注意:在设置和获取会话数据时,我们使用的是类似字典的语法。当我们执行 request.session['pidancode'] = '皮蛋编程' 时,我们正在将值 '皮蛋编程' 分配给键 'pidancode'。通过执行 request.session.get('pidancode'),我们可以获取存储在 'pidancode' 键中的值。

相关文章