栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django操作cookie

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django操作cookie

Django操作cookie cookie

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

Django设置cookie

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

HttpResponse.set_cookie(key, value=’’, max_age=None, expires=None, path=’/’, domain=None, secure=False, httponly=False, samesite=None)

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

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

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方法,如下所示:

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 的字典。键和值都是字符串。例如:

def getcookie(request):
    cookies = request.cookieS
    return JsonResponse(cookies)

请求该接口,如下所示:

Django删除cookie

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

def deletecookie(request):
    response = HttpResponse("OK")
    response.delete_cookie("cookie1")
    return response

请求该接口,效果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/360387.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号