![](/img/trans.png)
[英][Python EVE]: Reading the request parameters values in Python EVE
[英]Flask / Eve: Internal GET request with parameters
我正在使用Flask Web服务器( Eve API的一部分),并且需要执行内部GET
-request。
对于外部请求,我使用以下代码:
url = 'http://127.0.0.1:5000/simulations'
r = requests.get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
params={'hateoas': False}
)
但是,当尝试从flask应用程序中的函数使用requests
模块执行请求时,此方法不起作用,并引发ConnectionRefusedError
:
requests.exceptions.ConnectionError:('连接被中止。',ConnectionRefusedError(61,'连接被拒绝'))
为了使该请求在内部可用 ,我考虑如下使用flask应用程序的test_client()
:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'}
)
这工作得很好,但是我需要传递其他参数,如您在第一个使用requests
模块的示例代码中所见。 因此,我将上面的代码扩展为:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
params={'hateoas': False}
)
不幸的是,这引发了TypeError
:
TypeError: init ()获得了意外的关键字参数“ params”
那么,有没有一种方法可以在内部使用flask或eve处理GET
请求?
我知道有一个get_internal
repo分支,用于提供与其他请求类型(如post_internal()
get_internal()
相当的get_internal()
开发实现。 但是我不喜欢使用这个开发分支,因为不确定该功能是否会在下一个稳定版本中实现。
您传递查询字符串的方式不正确,您应该:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
query_string={'hateoas': False})
使用query_string
关键字。
顺便说一句,如果您要发布,请使用data
关键字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.