Dreamya 2020-06-03
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