Python 为什么我在用flask连接两个应用程序时出现404错误
我正在尝试使用flask连接两个应用程序:Python 为什么我在用flask连接两个应用程序时出现404错误,python,post,flask,python-requests,Python,Post,Flask,Python Requests,我正在尝试使用flask连接两个应用程序: @app.route("/agent/", methods = ['POST', 'GET']) def agent(): data = request.get_json(force = True) if(data): if(format(data['option']) == "1"): print(data['prepository']['run']) re
@app.route("/agent/", methods = ['POST', 'GET'])
def agent():
data = request.get_json(force = True)
if(data):
if(format(data['option']) == "1"):
print(data['prepository']['run'])
requests.post('http://some ip:4001/prepopsitory/', data['prepository'])
return "hi"
app.run(host = 'some ip', port = 4998)
这个呢
app = Flask(__name__)
@app.route('/prepository/', methods = ["GET","POST"])
def recibe():
data = request.get_json(force = True)
if(data):
run = data['prepository']['run']
prepository.formatea(run,1)
return "hi"
app.run(host = 'some ip', port = 4001)
问题是,当我向代理应用程序发送邮递员时,它不起作用,在第二个应用程序上显示404(前置)
当我一行一行地跑进去
@app.route('/prepository/', methods = ["GET","POST"])
说
SyntaxError:分析时出现意外的EOF
我不知道这两个问题是否相关
编辑
现在我已经尝试了任何突然出现在我脑海中的东西,我发现如果我直接把帖子发送到prepository,它会起作用。
鉴于此,我认为这两个应用程序之间的连接存在问题。
我还更改了用于get和post的库,它是flask.request.get\u json
现在是请求。发布或请求。获取
仍然不起作用。我不确定这是如何工作的,看起来您的前置
和代理
路由都已配置为处理GET
和POST
请求,但您的路由不区分传入的GET和POST请求。默认情况下,如果未指定路由上支持的方法,flask将默认支持GET请求。但是,如果不检查传入请求,您的路由就不知道如何处理传入请求,因为支持GET
和POST
。下面是一个简单的条件:if flask.request.method==“POST”:
可以用来区分这两种类型的请求。也许您可以添加上面提到的条件检查,以检查每种类型的请求,以便您的应用程序服务能够适当地响应。大致如下:
@app.route('/agent', methods=['POST', 'GET'])
def agent():
if request.method == "GET":
msg = "GET Request from agent route"
return jsonify({"msg":msg})
else:
# Handle POST Request
data = request.get_json()
if data:
# handle data as appropriate
msg = "POST Request from agent route handled"
return jsonify({"msg": msg})
app.run(host = 'some ip', port = 4998)
出于调试目的,只需发送一个非常简单的json
响应来验证配置的正确性,因为很难判断数据对象是否按原样正确设置。然后,一旦验证两个服务都正常工作,就可以开始构建应用程序服务,以便彼此通信
希望这有帮助 就在我脑海中,如果你从URL中删除最后一个斜杠,会发生什么?因此,您没有使用/prepository/
而是将/prepository
放在相同的10.40.3.147---[13/Mar/2019 12:17:10]“POST/prepository HTTP/1.1”404中-您是否尝试在使用邮递员发送请求时指定端口?我的邮递员url是,prepository在4001工作解决方案上运行。谢谢很高兴我能帮忙!