Python session介绍与使用

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’

  • 加密cookie

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周)(默认1209600SESSION_EXPIRE_AT_BROWSER_CLOSE = False                  # 是否关闭浏览器使得Session过期(默认False)
    	SESSION_SAVE_EVERY_REQUEST = True                       # 是否每次请求都保存Session,默认修改之后才保存(默认False):失效时间从最后请求算起
    

查看更多
查看更多

你可能感兴趣的:(python)