无法在内部服务器上运行烧瓶请求

unable to run requests for flask on internal server

上运行服务器
> http://127.0.0.1:5000/

并尝试执行 post 请求(实际代码有点复杂,但这是我无法工作的部分)。基本上,试图让类似下面的东西工作但是这个 returns 和错误说它没有找到。

r = requests.post('http://127.0.0.1:5000/api/user')

我也尝试了类似下面的方法,但它 returns:

url = url_for('api.userlistapi')
payload = {'email':email, 'password':password,'profile_verified':False}
r = requests.post(url)

self.prepare_url(url, params)
File "....appp/flask/lib/python2.7/site-packages/requests/models.py", line 360, in prepare_url
"Perhaps you meant http://{0}?".format(url))
MissingSchema: Invalid URL u'/api/user': No schema supplied. Perhaps you meant http:///api/user?

如有任何帮助,我们将不胜感激!路由可能只是一些愚蠢的东西,或者 post 请求应该以不同的方式完成?我也在使用 angular 并且那些对同一域的请求有效。

您测试的第二个解决方案是正确的。

您只需将 _external=True 添加到 url_for 个参数:

url = url_for('api.userlistapi', _external=True)
payload = {'email':email, 'password':password,'profile_verified':False}
r = requests.post(url)

这样,Flask 就可以构建一个包含域的完整 url。否则,url_for 只会构建一个亲戚 url,以便从您的域中调用。

--

此外,作为旁注,您可以通过以下方式直接使用 requests 传递参数:

r = requests.post(url, params=payload)

但这取决于其余代码中的其他因素,具体取决于您要执行的操作。