Flask test_client删除查询字符串参数

Fla*_*ker 12 python testing flask

我正在使用Flask创建一些非常简单的服务.从外部测试(使用HTTPie)参数通过查询字符串进入服务.

但是,如果我使用类似的东西.

    data = {
        'param1': 'somevalue1',
        'param2': 'somevalue2'}

    response = self.client.get(url_for("api.my-service", **data))
Run Code Online (Sandbox Code Playgroud)

我可以看到正在创建的URI:

http://localhost:5000/api1.0/my-service?param1=somevalue1&param2=somevalue2
Run Code Online (Sandbox Code Playgroud)

当我断断续续的服务:

request.args
Run Code Online (Sandbox Code Playgroud)

实际上是空的.

self.client是通过调用app.test_client()我配置的Flask应用程序创建的.

任何人都知道为什么在?被丢弃之后有什么事情或者如何在仍在使用时解决它test_client

Fla*_*ker 25

我刚刚找到了解决方法.

使

data = {
    'param1': 'somevalue1',
    'param2': 'somevalue2'}

response = self.client.get(url_for("api.my-service", **data))
Run Code Online (Sandbox Code Playgroud)

进入这个:

data = {
    'param1': 'somevalue1',
    'param2': 'somevalue2'}

response = self.client.get(url_for("api.my-service"), query_string = data)
Run Code Online (Sandbox Code Playgroud)

这有效,但似乎有点不直观,调试有一个地方,URI中提供的查询字符串被扔掉....

但无论如何这暂时适用.