Python 使用Flask测试客户端请求传递cookie头

Python 使用Flask测试客户端请求传递cookie头,python,flask,Python,Flask,我无法让烧瓶测试客户端通过cookies。这段代码过去是有效的,我认为我的环境发生了变化,这打破了这一点。我最近创建了一个新的Python3.7VirtualEnv,并安装了Flask1.0.2 从烧瓶导入烧瓶,jsonify,请求 app=烧瓶(名称) @应用程序路径(“/cookie\u echo”) def cookie_echo(): 返回jsonify(request.cookies) 使用app.test_client()作为客户端: response=client.get(“/co

我无法让烧瓶测试客户端通过cookies。这段代码过去是有效的,我认为我的环境发生了变化,这打破了这一点。我最近创建了一个新的Python3.7VirtualEnv,并安装了Flask1.0.2

从烧瓶导入烧瓶,jsonify,请求
app=烧瓶(名称)
@应用程序路径(“/cookie\u echo”)
def cookie_echo():
返回jsonify(request.cookies)
使用app.test_client()作为客户端:
response=client.get(“/cookie_echo”,headers={“cookie”:“abc=123;def=456”})
打印(response.get_数据(as_text=True))
运行该示例将打印
{}
,但我希望它打印
{“abc”:“123”、“def”:“456”}

如果我通过
flask run
运行我的应用程序,则使用curl发送标题会起作用:

$curl-H“Cookie:abc=123;def=456”http://localhost:5000/cookie_echo
{“abc”:“123”,“def”:“456”}

客户端管理cookie,您不应该在
头={}
中手动传递cookie。由于Werkzeug 0.15中的更改,手动传递
Cookie
头不再有效,这不是预期的。使用
client.set_cookie
设置cookie,或者在响应中设置cookie,它将与下一个请求一起发送

c=app.test\u客户端()
c、 set_cookie('localhost','abc','123')
c、 set_cookie('localhost','def','456')
c、 获取('/cookie\u echo')