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

JKC*_*JKC 9 python flask python-3.x flask-restful

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

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')
Run Code Online (Sandbox Code Playgroud)

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

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')
Run Code Online (Sandbox Code Playgroud)

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

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中执行http://127.0.0.1:5000/1234时,我能够看到

"欢迎!这是Flask Test Part 1"

现在这个服务器处于活动状态,我正在执行第二个脚本.所以我再次得到

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
Run Code Online (Sandbox Code Playgroud)

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

"欢迎!这是Flask Test Part 1"

代替

"欢迎!这是Flask Test Part 2"

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

met*_*irr 11

Flask开发服务器默认监听端口5000.因此,当您运行没有端口号的Flask应用程序时,它将继续运行5000.

您可以在同一台计算机上运行多个Flask应用程序,但使用不同的端口号.让我们说你的脚本名称是script1.pyscript2.py:

$ export FLASK_APP=script1.py
$ flask run --host 0.0.0.0 --port 5000
Run Code Online (Sandbox Code Playgroud)

打开一个新的终端

$ export FLASK_APP=script2.py
$ flask run --host 0.0.0.0 --port 5001
Run Code Online (Sandbox Code Playgroud)

  • 在这样的不同端口上打开多个烧瓶实例有什么问题吗?只要我的电脑能处理,就没有其他问题吗? (4认同)