前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django操作cookie

Django操作cookie

作者头像
zy010101
发布2021-11-02 16:45:10
8000
发布2021-11-02 16:45:10
举报
文章被收录于专栏:程序员

Django操作cookie

cookie

cookie有时候也写作cookies,关于cookie的内容可以参考cookie与web缓存

Django设置cookie

cookie有服务器端生成,发送给客户端(一般是浏览器)。在Django中设置cookie的方法原型如下所示:

代码语言:javascript
复制
HttpResponse.set_cookie(key, value=’’, max_age=None, expires=None, path=’/’, domain=None, secure=False, httponly=False, samesite=None)

该函数的参数具体解释可以看这里

cookie是在HTTP头中携带的,但是由于cookie比较特殊,Django提供了特殊的方法来设置cookie。 下面是一个例子:

代码语言:javascript
复制
def index(request, type, id):
    if request.method == "GET":
        print(type)
        print(id)
        response = HttpResponse("OK")
        response.set_cookie("cookie1", "123")
        return response
    else:
        return HttpResponse("NO")

使用浏览器请求该方法,如下所示:

在这里插入图片描述
在这里插入图片描述

可以看到会服务器端生成的cookie会被发送到客户端。

Django更新cookie

由于cookie是键值对,更新cookie的方法也是使用set_cookie方法,如下所示:

代码语言:javascript
复制
def updatecookie(request):
    response = HttpResponse("OK")
    response.set_cookie("cookie1", "qwe")
    return response

前面我们通过index设置了cookie1的值是123,现在通过更新,将cookie1的值更新为qwe。

使用浏览器请求,效果如下所示:

在这里插入图片描述
在这里插入图片描述

可以看到cookie1的值更新为了qwe

Django读取cookie

从HTTP协议的角度出发,cookie也是存放在HTTP头中的信息。但是由于cookie是比较特殊的,因此Django将其放在了HttpRequest的COOKIES属性中。

COOKIES属性是一个包含所有 cookies 的字典。键和值都是字符串。例如:

代码语言:javascript
复制
def getcookie(request):
    cookies = request.COOKIES
    return JsonResponse(cookies)

请求该接口,如下所示:

在这里插入图片描述
在这里插入图片描述

Django删除cookie

通过HttpResponse对象中的delete_cookie方法来删除cookie。删除了cookie之后,需要返回给客户端响应,这样客户端才知道删除了cookie,否则客户端的cookie不会被删除。例如:

代码语言:javascript
复制
def deletecookie(request):
    response = HttpResponse("OK")
    response.delete_cookie("cookie1")
    return response

请求该接口,效果如下:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Django操作cookie
    • cookie
      • Django设置cookie
        • Django更新cookie
          • Django读取cookie
            • Django删除cookie
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档