1.settings.py
# session保存在数据库中
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_COOKIE_NAME = "sessionid"
SESSION_COOKIE_PATH = "/" # Session的cookie保存的路径(默认)
SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默认)
SESSION_COOKIE_SECURE = False # 是否Https传输cookie(默认)
SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输(默认)
SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)(默认)
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否关闭浏览器使得Session过期(默认)
SESSION_SAVE_EVERY_REQUEST = False # 是否每次请求都保存Session,默认修改之后才保存(默认)
2.跨域session,首先配置跨域请求,具体参照 《jango(二) django跨域请求配置》,之后进行如下修改
CORS_ORIGIN_ALLOW_ALL = False
# 针对跨域的http请求进行配置,localhost无法进行session传递
CORS_ORIGIN_WHITELIST = (
'http://127.0.0.1:8080',
)
CORS_ALLOW_CREDENTIALS = True
注意:如果不进行属性配置,django会拦截跨域的sessionid,也可以在前端获取sessionid后直接存在cookie中
3.session的使用
# 赋值
request.session['aaa'] = 'sdsd4545'
# 取值
request.session.get('aaa')