为什么我无法从requests.get获取cookie

时间:2015-03-31 09:33:07

标签: django cookies python-requests

我在views.py(Django 1.7)

中有这个
class Info(View):
    http_method_names = ['get', 'post', 'put', 'delete']

    def get(self, request):
        return render(request, 'command.html', {'result': request.META.items()})

我尝试使用requests.get获取cookie,如下所示:

print(requests.get(r'http://127.0.0.1:8000/info/').cookies.items())

但是,没有cookie,我只有一个空列表,如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

你必须:

  1. 将Cookie设置为Response对象

    response = render(request, 'command.html', {'result': request.META.items()})
    response.set_cookie('cookie_name', 'cookie_value')
    return response
    
  2. request.COOKIES

    中搜索Cookie
    if 'cookie_name' in request.COOKIES:
        cookie_value = request.COOKIES['cookie_name']
    

答案 1 :(得分:1)

requests.get(r'http://127.0.0.1:8000/info/').cookies.items())

这对我来说没什么问题。如果它返回一个空列表,则表示您的视图未设置任何cookie。

默认情况下,Django仅在修改会话时设置会话cookie。有关详细信息,请参阅when sessions are saved上的Django文档。