cookie
定义: 保存在浏览器上的一组组键值对 特性: 服务器让浏览器保存的cookie 浏览器有权利进行不设置 下次访问时自动携带响应的cookie
Django中的操作
设置:
ret.set_cookie('is_login', '1') # 设置cookie 超时时间 max_age=5 路径 path='/home/' ret.set_signed_cookie('is_login', '盐', 'day66') # 设置加密cookie
获取:
request.COOKIES.get('is_login') # 不加密的cookie request.get_signed_cookie('is_login',salt='盐',default='xx') # 加密cookie
删除
ret.delete_cookie('is_login') # Set-Cookie: is_login=""; expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/
session
定义: 保存在服务器端的一组组键值对 为什么使用session: cookie的长度和个数受到限制 cookie保存在浏览器本地不安全
Django的操作
设置:
request.session['is_login'] = '1' # 设置session数据 request.session.set_expiry(5) # 设置超时时间
获取:
request.session.get('is_login') # 获取session
删除:
del request.session[key] # 删除单个session request.session.delete() # 删除服务器的session数据,不删除cookie request.session.flush() # 删除session和cookie
其他方法
request.session.set_expiry(value) # 设置超时时间 request.session.clear_expired() # 清除所有超时的 session
配置:
# Cookie name. This can be whatever you want. SESSION_COOKIE_NAME = 'sessionid' # Age of cookie, in seconds (default: 2 weeks). SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 SESSION_SAVE_EVERY_REQUEST = False # Whether a user's session cookie expires when the Web browser is closed. SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 將session 存储在数据库中 默认配置 SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 將session 存储在缓存中 SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # session 存储 缓存 + 数据库 SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db' # 將session 存储在文件中 SESSION_ENGINE = 'django.contrib.sessions.backends.file' # 文件路径 SESSION_COOKIE_AGE = None
来源:https://www.cnblogs.com/zhang-zi-yi/p/10181662.html