Django中cookie和session笔记

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传输(默认)

猜你喜欢

转载自blog.csdn.net/miaoqinian/article/details/80814712