【发布时间】:2020-01-01 01:46:07
【问题描述】:
我正在本地计算机上运行两个 Flask 应用程序(A 和 B)。在 Flask 应用 B 中,我从 Flask 应用 A 调用端点。
从 Flask 应用 A 调用的端点是:/hello_world
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route("/hello_world", methods=["POST"])
def hello_world():
a = request.json.get("a")
b = request.json.get("b")
return jsonify({a:b})
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,debug=True)
在烧瓶应用 B 中,端点/hi_world 正在调用上述端点,如下所示:
import requests
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route("/hi_world", methods=["POST"])
def hi_world():
a = request.json.get("a")
b = request.json.get("b")
paras = {"a":a, "b":b}
response = requests.post(url="http://0.0.0.0:5000/",data=paras)
print(response)
return None
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5002,debug=True)
我使用邮递员对 /hi_world 进行 POST 调用,并在请求正文 {"a":"Hello","b":"World"} 中传递以下字典。但是,我得到了<Response [404]>。当我直接从邮递员那里调用/hello_world 时,它与<Response [200]> 一起工作得很好。我做错了什么?
【问题讨论】:
-
我认为这是一个错字:你要去
0.0.0.0/5000而不是0.0.0.0:5000。 -
感谢您的收获。实际上,在我的源代码中,它就像您编写的那样。我只是在这里打错了。
-
如果你得到一个 404 到
hi_world,那么,你能确保路由独立工作吗?即删除任何涉及与另一个端点交谈的内容 -
0.0.0.0 不是可路由的 IP。这是一个绑定地址。在同一台机器上使用
127.0.0.1:5000 -
0.0.0.0 将匹配默认路由,这可能会路由到本地主机。不是惊人的做法,但不一定是一个问题。
标签: python python-3.x rest flask