Django中Session的设置,获取,session有效期,储存方式的设置,以及过期session 的处理
在Django中,Session是通过中间件django.contrib.sessions.middleware.SessionMiddleware
来处理的。
设置Session:
request.session['key'] = value
获取Session:
value = request.session.get('key', default_value)
Session的有效期可以通过设置settings.py
中的SESSION_COOKIE_AGE
来控制,单位是秒,默认是1209600秒(2周)。
Session的存储方式默认是数据库,但也可以通过修改settings.py
中的SESSION_ENGINE
来改变存储方式,例如使用缓存:
# 使用Django缓存存储Session
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'default' # 使用settings.py中CACHES配置项下的default配置
或者使用文件系统:
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
SESSION_FILE_PATH = '/path/to/sessions/' # 文件存储路径
或者使用缓存:
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
SESSION_CACHE_ALIAS = 'default' # 使用settings.py中CACHES配置项下的default配置
过期Session的处理一般是自动的,当Session的有效期过去后,会在下次请求时自动删除。如果需要立即删除过期的Session,可以调用clear_expired
管理命令。
python manage.py clear_expired
评论已关闭