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/test
和 http://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。
我有一个用例,我需要通过 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/test
和 http://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。