Python - 如何从同一台客户端机器运行多个烧瓶应用程序

新手上路,请多包涵

我有一个烧瓶应用程序脚本,如下所示:

 from flask import Flask
app = Flask(__name__)

@app.route("/<string:job_id>")
def main(job_id):
    return "Welcome!. This is Flask Test Part 1"

if __name__ == "__main__":
    job_id = 1234
    app.run(host= '0.0.0.0')

我有另一个烧瓶应用程序脚本如下:

 from flask import Flask
app = Flask(__name__)

@app.route("/<string:ID>")
def main(ID):
    return "Welcome!. This is Flask Test Part 2"

if __name__ == "__main__":
    ID = 5678
    app.run(host= '0.0.0.0')

这两个脚本之间的唯一区别是参数名称及其值。现在我的问题是假设我正在执行第一个脚本。所以我会得到类似的东西

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

当我在浏览器中执行 http://127.0.0.1:50001234 时,我可以看到

“欢迎!这是烧瓶测试第 1 部分”

现在此服务器处于活动状态,我正在执行第二个脚本。所以我又得到了

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

但是当我在浏览器中执行 http://127.0.0.1:50005678 时,我能够看到

“欢迎!这是烧瓶测试第 1 部分”

代替

“欢迎!这是 Flask 测试第 2 部分”

我不明白我在哪里做错了。任何输入或更改都会有所帮助

原文由 JKC 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 530
2 个回答

Flask 开发服务器默认侦听端口 5000 所以当你运行一个没有端口号的 Flask 应用程序时,它将在 5000 上运行。

您可以在同一台机器上运行多个 Flask 应用程序,但使用不同的端口号。假设您的脚本名称是 script1.pyscript2.py

 $ export FLASK_APP=script1.py
$ flask run --host 0.0.0.0 --port 5000

开辟一个新的终端

$ export FLASK_APP=script2.py
$ flask run --host 0.0.0.0 --port 5001

原文由 metmirr 发布,翻译遵循 CC BY-SA 4.0 许可协议

尽管 其他答案 建议使用不同的 --port 参数运行两个烧瓶服务器,但我想分享另一个要考虑的问题:

清除浏览器缓存

在运行第二个脚本之前,您是否清除了缓存内存?

有时浏览器仍然存储 URL 的先前数据(包括第一个端口)。因此它将显示旧数据(来自第一个脚本和端口)而不是获取新数据(来自第二个脚本和端口)。

您可以清除缓存内存,然后运行第二个脚本,在浏览器中访问并查看它从第二个应用程序的 URL 正确获取数据。

原文由 blank 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题