首页 > 解决方案 > django设置cookie和删除cookie

问题描述

我在 django 中设置了一个 cookie 而没有响应。当用户登录时,我触发一个 api 来验证其数据,然后我试图将其 user_id 保存在一个类的 cookie 中,然后在另一个类中我试图删除 cookie 意味着用户已注销。

class APIloginView(View):

    def get(self):
        r = requests.post(url,parameters)
        if 'user_id' not in request.COOKIES:
            request.COOKIES['user_id']='2133212332'
        print(request.COOKIES.get('user_id'))
    return HttpResponse(r)

但是当我尝试在另一个类中访问值时,它没有显示

class logout(View):
    def get(self):
        print(request.COOKIES.get('user_id'))
        pass

我在哪里做错了?我知道删除一个会话del request.session['user_id'],比如如何删除一个特定的 cookie?

标签: djangocookies

解决方案


需要在您返回的响应中设置 Cookie。

def get(self, request):
    r = requests.post(url,parameters)
    response = HttpResponse(r)
    response.set_cookie('user_id', '2133212332')
    return response

还有你的代码怎么能正常工作。您正在尝试访问request任何地方,但它不存在,因为您get没有request参数。你的意思是:

def get(self, request):
    ...

推荐阅读