HttpResponse.set_cookie(key="", value='', max_age=None, expires=None) #设置或者添加 Cookie
上面的参数分别表示:key、value分别表示 COOKIES 的键与值;max_age 代表 COOKIES 的存活时间,以秒为单位;expires 表示具体过期时间,当不指定 max_age 和expires 时,关闭浏览器时此数据失效。当然还有一些其他的参数,比如说 domain 用来绑定域名从而实现跨域。那么又如何删除一个 COOKIE 呢?方法如下所示:HttpResponse.delete_cookie(key)
实例演示,代码如下所示:from django.http import HttpResponse #设置添加cookie def set_cookie_view(request): resp=HttpResponse() resp.set_cookie('username','cbiancheng',3600) return resp #得到cookie的值使用get方法 def get_cookie_view(request): value = request.COOKIES.get('username') return HttpResponse('--MY COOKIE is--%s'%value)然后配置相应的路由,如下所示:
urlpatterns=[ path('set_cookie/',views.set_cookie_view), path('get_cookie/',views.get_cookie_view),]最后访问相应的路由,地址栏输入 1270.0.0.1:8000/index/set_cookie,使用谷歌调试工具,点击 Network 找到响应头,Cookie 都是需要进行加密处理的,在这里为了方便给大家演示,没有进行加密操作。如下所示:
Response Headers
Content-Length: 0
Content-Type: text/html; charset=utf-8
Date: Thu, 04 Jun 2020 08:36:37 GMT
Server: WSGIServer/0.2 CPython/3.7.4
Set-Cookie: username=cbiancheng; expires=Thu, 04 Jun 2020 09:36:37 GMT; Max-Age=3600; Path=/
X-Frame-Options: SAMEORIGIN
访问 1270.0.0.1:8000/index/get_cookie,直接可以得到 Cookie 的值,大家也可以自己尝试一下,结果如下图所示:
图1:Chrome 调试工具展示 Cookie
本文链接:http://task.lmcjl.com/news/6377.html