ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
一、**关于Cookie** 1. cookie及特点 1. Cookie是由服务器(网站)生成的,存储在浏览器端的**键值对数据**(通常经过加密) 2. 在响应请求时,服务器会把生成**Cookie数据**发给浏览器,浏览器会自动保存 (前提:浏览器开启了cookie功能) 3. **浏览器请求服务器(网站)时,会自动上传该服务器(网站)生成的所有Cookie** 4. Cookie基于**域名安全**的 * 每个网站只能访问到自己生成的cookie,无法访问其它网站(域)生成的cookie 2. Cookie的应用 1. 保存登录状态:当用户登录某网站后,一定时间内不用再次输入用户名和密码登录。 2. 保存用户浏览器的商品: 再次访问网站时,把用户之前浏览过的商品记录显示出来 二、Django中Cookie的保存和读取 1. **保存cookie**: 通过`HttpResponse`响应对象的`set_cookie`方法保存 ~~~ response.set_cookie('键', '值',max_age) ~~~ * `max_age`有效期,一个整数,单位为秒,表示在多长时间后失效 * **Cookie默认有效期**: 如果不指定有效期,或者`max_age`值为`None`,则关闭浏览器后Cookie数据就会过期 2. **读取cookie**: 通过`HttpRequest`请求对象的`COOKIES`属性(字典类型)读取 ~~~ request.COOKIES['键'] # 或者: request.COOKIES.get('键') ~~~ ### 测试 ~~~ def set_cookie(request): """保存cookie键值对数据""" response = HttpResponse('保存cookie数据成功') response.set_cookie('user_id', 10) response.set_cookie('user_name', 'admin') return response def get_cookie(request): """读取cookie键值对数据""" user_id = request.COOKIES.get('user_id') user_name = request.COOKIES.get('user_name') text = 'user_id = %s, user_name = %s' % (user_id, user_name) return HttpResponse(text) ~~~