django内部支持5种session引擎:
settings.py文件内设置
SESSION_ENGINE = ‘django.contrib.sessions.backends.db’
SESSION_ENGINE = ‘django.contrib.sessions.backends.cache’
SESSION_CACHE_ALIAS = ‘default’ # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
SESSION_ENGINE = ‘django.contrib.sessions.backends.file’
SESSION_FILE_PATH = os.path.join(BASE_DIR, ‘cache’) # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir()
SESSION_ENGINE = ‘django.contrib.sessions.backends.cached_db’
SESSION_ENGINE = ‘django.contrib.sessions.backends.signed_cookies’
**注意: 以上5种引擎均支持session默认参数设置,使用方式相同**
使用方法:
获取:
request.session['key'] # 不存在报错
request.session.get('key', None) # 无值返回None
设置:
request.session['key'] = 'value'
request.sessino.setdefault('key', 123) # 不存在设置默认值,存在不设置
删除某个值:
del request.session['key']
删除当前用户的所有session数据:
request.session.delete('session_key')
清除:
request.session.clear()
支持.keys() .values() .items() .iterkeys() .itervalues()等一些字典操作方法
获取用户的随机字符串:
request.session.session_key
删除失效日期小于当前日期的数据:
request.session.clear_expired()
判断随机字符串是否存在session内:
request.session.exists('session_key')
设置session失效时间:
request.session.set_expirp(value)
value:整数,该秒数后失效
value:datatime/timedelta,在该时间后失效
value:0 关闭浏览器失效
value:None,依赖全局失效策略
session参数设置:
SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
SESSION_COOKIE_PATH = "/" # Session的cookie保存的路径(默认)
SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默认)
SESSION_COOKIE_SECURE = False # 是否Https传输cookie(默认False)
SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输(默认True)
SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)(默认1209600)
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否关闭浏览器使得Session过期(默认False)
SESSION_SAVE_EVERY_REQUEST = True # 是否每次请求都保存Session,默认修改之后才保存(默认False):失效时间从最后请求算起
查看更多
查看更多