Django Session管理

Session是存储在服务器端的用户凭证,安全性比Cookie要高,Django是将Session信息存放在Cookie里面。用户一旦禁用Cookie,就不能用了。
Session不光可以存储在Cookie里面,如果前端将其存储在页面中,作为全局变量,每次发送,都携带上,和放在Cookie里面的效果是一样的,只是放在Cookie里面简单点。
前后端分离的项目,一般都是将Session凭证放在Header里面,起名叫做Token。

Session的存储形式

# 数据库保存,默认
SESSION_ENGINE = ‘django.contrib.sessions.backends.db‘

# 文件形式保存
SESSION_ENGINE = ‘django.contrib.sessions.backends.file‘
# 文件保存的路径
SESSION_FILE_PATH = ‘/cache/session‘

# 缓存形式保存
SESSION_ENGINE = ‘django.contrib.sessions.backends.cache‘
# 缓存名称
SESSION_CACHE_ALIAS = ‘default‘

# 数据库+缓存
SESSION_ENGINE = ‘django.contrib.sessions.backends.cache_db‘

# cookie
SESSION_ENGINE = ‘django.contrib.sessions.backends.signed_cookies‘

session的操作

# 如果不存在,则报错
request.session[‘token‘]
# 如果不存在,返回None
request.session.get(‘token‘)
# 设置默认值
request.session.setdefault(‘token‘, ‘‘)
# 更新值
request.session[‘token‘] = ‘‘
# 删除值
del request.session[‘token‘]
# 清空session
request.session.clear()
# session中的键
request.session.keys()
# session中的值
request.session.values()
# session的session_key,django_session中的session_key
request.session.session_key

相关推荐