1 1. Cookie是什么 2 保存在浏览器端的键值对 3 4 为什么要有Cookie? 5 因为HTTP请求是无状态的 6 7 Cookie的原理? 8 服务端可以在返回响应的时候 做手脚 9 在浏览器上写入键值对(Cookie) 10 11 浏览器发送请求的时候会自动携带该网站保存在我浏览器的键值对(Cookie) 12 13 Django 从请求携带的Cookie中取值: 14 request.COOKIES.get("is_login") 15 request.get_signed_cookie(key, default=None, salt="xxx") 16 Django中设置Cookie:(针对的是响应对象) 17 rep = HttpResponse()/render(request, "test.html)/redirect() 18 rep.set_signed_cookie(key, value, salt="xxx", max_age=7) 19 Django中删除Cookie:(注销) 20 rep.delete_cookie(key) 21 22 2. Session是什么 23 Session保存在服务端的键值对 24 25 Session依赖于Cookie 26 27 dsadasdsadsafsjkndf: {"is_login": 1, "name": "xiaohei", "age":18} 28 dsaasdaknfgreryywdf: {"is_login": 1, "name": "xiaobai", "age":20} 29 wqrqrteknfgzddasqfg: {"is_login": 0, "name": "xiaohui", "age":48} 30 31 给浏览器写入Cookie: 32 sessionid:wqrqrteknfgzddasqfg 33 34 1. 从用户发来的请求的Cookie中 根据 sessionid 取值, 取到 wqrqrteknfgzddasqfg 35 2. 根据特殊字符串找到对应的 Session 数据 --> {"is_login": 0, "name": "xiaohui", "age":48} 36 3. request.session.get("is_login") --> 从Session取值 37 38 39 Django中设置Session: 40 request.session["is_login"] = 1 41 request.session.set_expiry(7) # 设置超时时间 (Cookie和Session数据的) 42 43 44 在settings.py中设置,每次请求都刷新Session超时时间 45 SESSION_SAVE_EVERY_REQUEST = True 46 47 Django中删除Session: 48 request.session.flush() 清除Cookie和Session数据 49 50 request.session.clear_expired() 将所有Session失效日期小于当前日期的数据删除 51