首页 > 解决方案 > 无法在 Flask 中设置多个 cookie

问题描述

我有两个清单:

  1. [1、2、3]
  2. [4、5、6]

我遍历它们以生成像这样的cookie:

for i, j in zip(list_1, list_2):
    url = 'http://www.website.com/{}'.format(i)
    payload = 'encoded{}'.format(j)
    headers = {...}
    request = requests.request("POST", url, data=payload, headers=headers)
    response = make_response()
    for key, value in request.cookies.items():
        response.set_cookie(key, value)
return response

但是,只设置了最后一个 cookie。我可以通过手动索引它们来为每个列表设置 cookie,如下所示:

url = 'http://www.website.com/{}'.format(list_1[1])
payload = 'encoded{}'.format([1])

我如何在不对其进行硬编码的情况下复制它,以便在调用 return 语句时设置多个 cookie?

标签: pythonpython-3.xcookiesflaskrequest

解决方案


只需将响应变量放在循环之外。每当“for i, j”循环迭代时,就实例化它。像这样:

response = make_response()
for i, j in zip(list_1, list_2):
    url = 'http://www.website.com/{}'.format(i)
    payload = 'encoded{}'.format(j)
    headers = {...}
    request = requests.request("POST", url, data=payload, headers=headers)
    for key, value in request.cookies.items():
        response.set_cookie(key, value)
return response

推荐阅读