Django(十三): Cookie和Session

Cookie: 是服务器返回给客户端Cookie,是一组键值对,其键和值都是字符串
同一个客户端再次访问服务器时,会携带该Cookie

应用: 1. 服务器可以通过Cookie验证客户端
2. 页面跳转时传递信息

局限: 1. Cookie保存在客户端
2. Cookie只能存4096字节

使用: 1. 设置Cookie:
response = redirect('/url') 或者 HTTPResponse()
response.set_cookie('key','value',max_age=, expire=) # 1>. key, value都是str
2>. 一次只能设置一组键值对
3>. max_age为有效的秒数
4>. expire为到期的datetime时间
2. 客户端再次访问,服务器获取其携带的Cookie:
request.Cookie # 一组组键值对

3. 删除Cookie:
response.delete_cookie('key') # 相当于是在服务端删除后,在传给客户端覆盖
3. jquery可以通过.cookie()操作Cookie

Session: 仅在返回给客户端的Cookie上存储sessionid(字符串),所有信息以键值对的形式存入服务器数据库,在django中是 django_session
使用: 1. 设置session: request.session[key] = value # value可以是任意数据类型

2. 获取session: request.session[key] # request.session是一个对象封装的键值对

3. 删除session: del request.session[key] # 删除一个键值对
request.session.flush() # 删除该session

4. 设置有效时间: request.session.set_expiry(value) # value可为整数或者datetime

* 设置session的流程: 1>. 生成随机字符串
2>. 将其写入Cookie
3>. 将其保存的服务器数据库中
4>. 在服务器设置其相应字段
* 客户端再次访问时,服务器通过其Cookie中唯一的sessionid 找到客户端对应的数据
posted @ 2019-05-15 20:34  lancelotxly  阅读(99)  评论(0编辑  收藏  举报