Django中cookie和session笔记
2018年06月26日 14:24:49
阅读数:11
Cookie
-
1. 下定义:
-
保存在浏览器端的键值对
-
2. 用处:
-
1. 登录
-
2. 记住密码/7天免登录
-
3. 用户浏览习惯(每页显示10条)
-
4. 简单的投票限制
-
3. Django操作Cookie
-
1. 设置Cookie
-
req = HttpResponse("OK")
-
req.set_cookie("key", "value")
-
# 设置加盐的cookie
-
req.set_signed_cookie("key", "value", salt="shanghais1hao", max_age=秒)
-
2. 获取Cookie
-
request.COOKIES --> 大字典
-
request.COOKIES["key"]
-
request.COOKIES.get("key", "")
-
# 获取加盐的Cookie
-
request.get_signed_cookie("key", default="", salt="shanghais1hao")
-
3. 删除Coookie
-
req.delete_cookie("key")
Session
-
1. 下定义:
-
保存在服务端的键值对,依赖于Cookie
-
2. 用处:
-
1. 登录
-
2. 保存手机验证码/验证码
-
3. 保存购物车数据
-
...
-
3. Django操作Session
-
1. 设置Session
-
1. request.session["key"] = "value"
-
2. request.session.set_expiry(秒/日期对象/时间间隔对象/0/None)
-
3. request.session.setdefault("k1", "v1")
-
2. 获取Session数据
-
1. request.session.get("k1", "")
-
2. request.session["k1"]
-
3. request.session.keys()
-
4. request.session.values()
-
5. request.session.items()
-
6. request.session.iterkeys()
-
7. request.session.itervalues()
-
8. request.session.iteritems()
-
3. 删除Session
-
1. request.session.flush()多用于注销
-
2. request.session.delete()
-
4. 手动清除早已经过期的session数据
-
request.session.clear_expired()
-
5. 相关配置项(写在settings.py中的)
-
1.每次请求都更新Session失效时间
-
SESSION_SAVE_EVERY_REQUEST = True
-
2. SESSION_COOKIE_AGE = 1209600 # 设置Cookie超时时间
-
3. SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存在浏览器上时的key
-
4. 其他:
-
SESSION_COOKIE_PATH = "/" # Session的cookie保存的路径(默认)
-
SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默认)
-
SESSION_COOKIE_SECURE = False # 是否Https传输cookie(默认)
-
SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输(默认)