flaskapp - 两个 api 资源在两个不同的 python 脚本中

flaskapp - Two api resources in two different python scripts

我有一个用例,我需要通过 Flask 从同一服务器 运行 多个 python 脚本。

script1.py如下

app = Flask(__name__)
api = Api(app)

class App(Resource):
   def post(self):
       resp = Response('successfully tested')
       return(resp)
        
api.add_resource(App, '/testapp')


if __name__ == "__main__":

    app.run(port=6000, host="0.0.0.0", use_reloader=True)

同样script2.py

app = Flask(__name__)
api = Api(app)

class Test(Resource):
   def post(self):
   resp = Response('successfully tested')
   return(resp)
        
api.add_resource(Test, '/test')


if __name__ == "__main__":

    app.run(port=5000, host="0.0.0.0", use_reloader=True)

当我按预期分别执行这两项工作时,http://0.0.0.0:5000/testhttp://0.0.0.0:5000/testapp 工作。

但是当我将这些脚本配置为服务并尝试 post URL 时,其中一个可以工作,另一个失败。

我做得对吗?

您不能这样做,因为 flask 服务器需要绑定到端口 [5000]。您必须 运行 这两个脚本在不同的端口上,然后您可以使用 Nginx 根据 API 规则代理传递它们。如下所示

https://serverfault.com/questions/650117/serving-multiple-proxy-endpoints-under-location-in-nginx 您可以使用任何其他反向代理,也不必一定要使用 Nginx。