Flask / Eve:带参数

时间:2015-12-12 13:48:06

标签: python flask request internal eve

我使用的是flask网络服务器(eve api的一部分),需要执行内部GET - 请求。

对于外部请求,我使用此代码:

url = 'http://127.0.0.1:5000/simulations'
r = requests.get(url,
                 headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
                 params={'hateoas': False}
                 )

但是,当尝试使用烧录应用程序中的函数使用requests模块执行请求并且引发ConnectionRefusedError时,这不起作用:

  

requests.exceptions.ConnectionError :('连接已中止。',   ConnectionRefusedError(61,'连接被拒绝')

为了制作这个request available internally,我考虑使用我的烧瓶应用程序的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'

那么有没有办法处理GET - 请求在内部使用flask或eve?

我知道有一个get_internal repo branch前夕提供get_internal()的开发实施,与post_internal()等其他请求类型相当。但是我不喜欢使用这个开发分支,因为它不确定这个功能是否会在下一个稳定版本中实现。

1 个答案:

答案 0 :(得分:1)

传递查询字符串的方式不对,你应该:

r = app.test_client().get(url,
                          headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
                          query_string={'hateoas': False})

使用query_string关键字。

顺便说一下,如果您要发帖,请使用data关键字。