1.cookie
(1)什么是cookie?
服务器让浏览器保存在浏览器本地的键值对
(2) 为什么要有cookie?
因为http协议无状态,每一次访问请求没有任何关系,无法保存状态
(3)cookie的特点?
cookie是由服务器给浏览器设置的
在同一个浏览器中访问页面时,携带者cookie
(4)设置cookie
例如:
response1 = redirect(‘/login/’)
response1.set_cookie(key, value) 或者 response1.set_cookie(key, value,max_age) 其中max_age是创建的这个cookie在浏览器中保存多长时间,单位秒
response1.set_cookie(key, value,salt='') 加盐加密
(5)获取cookie
request.COOKIES['key'] 或者
request.COOKIES.get(key) 推荐取法
(6) 删除cookie
res.delete_cookie(key)
2.session
(1)什么是session
session是保存在服务器上的键值对,每一个session对应一个cookie,其依赖于cookie
(2)为什么用session
1.cookie在浏览器端,不太安全
2.cookie保存的长度受限
(3)设置session
request.session[key] = value 或者
request.session.setdefault(key,value) 当存在时不设置
(4)获取session
request.session[key] 或者
request.session.get('key', ‘’)
(5) 删除session
request.session.pop(key) 删除某个键值对
del request.session['key']
request.session.delete() 删除所有的session键值对
request.session.flush() 删除所有的session键值对及cookie键值对
request.session.set_expiry() 设置超时时间request.session.clear_expired() 清除当前过期的session
(6)session的其他的配置
SESSION_COOKIE_NAME = 'sessionid'
# Age of cookie, in seconds (default: 2 weeks).
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
# Whether to save the session data on every request.
SESSION_SAVE_EVERY_REQUEST = False
# Whether a user's session cookie expires when the Web browser is closed.
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
3.在设置session时,涉及了数据的传输,需以json的形式,所以在设置session时,其对应的值要符合转换为json的数据类型。获取session时其又会反序列化回来