在
上运行服务器> http://127.0.0.1:5000/
并尝试发布请求(实际代码有点复杂,但这是我无法工作的部分)。基本上,尝试获得类似以下内容的工作,但这会返回并且错误表明找不到它。
r = requests.post('http://127.0.0.1:5000/api/user')
我也尝试了类似下面的内容,但它返回:
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?
任何帮助将不胜感激!它可能只是路由愚蠢或者应该以不同的方式完成帖子请求?我也使用角度和那些请求到同一个域工作。
答案 0 :(得分:1)
使用您测试的第二个解决方案,您在正确的轨道上。
您只需将_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)
但这取决于你的代码中其他代码的其他因素,基于你想要做的事情。