为什么我无法更改Flask应用运行的主机和端口?

时间:2017-01-30 16:20:09

标签: python flask

我想更改运行我的应用的主机和端口。我在host中设置了portapp.run,但flask run命令仍在默认127.0.0.1:8000上运行。如何更改flask命令使用的主机和端口?

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000)
set FLASK_APP=onlinegame
set FLASK_DEBUG=true
python -m flask run

6 个答案:

答案 0 :(得分:45)

flask命令与flask.run方法分开,它没有看到它或以任何方式使用它。您可以将命令行参数传递给命令。

flask run -h localhost -p 3000

传递--help以获取完整的选项列表。

从不将开发服务器暴露给外部(例如绑定到0.0.0.0)。使用生产WSGI服务器,例如uWSGI或Gunicorn。

gunicorn -w 2 -b 0.0.0.0:3000 myapp:app

答案 1 :(得分:5)

使用flask run命令运行应用程序服务器时,模块的__name__不是"__main__"。因此,代码中的if块不会被执行 - 因此服务器不会像您期望的那样被绑定到0.0.0.0

要使用此命令,您可以使用--host标志绑定自定义主机。

flask run --host=0.0.0.0

Source

答案 2 :(得分:2)

您也可以使用它:

if __name__ == "__main__":
    app.run(host='127.0.0.1', port=5002)

然后在控制台中使用它

set FLASK_ENV=development
python app.py

答案 3 :(得分:1)

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == 'main':
    app.run(host="localhost", port=8000, debug=True)

在脚本中像这样配置主机和端口并使用

运行它
python app.py

答案 4 :(得分:1)

您可以使用这 2 个环境变量:

set FLASK_RUN_HOST=0.0.0.0
set FLASK_RUN_PORT=3000

答案 5 :(得分:0)

您还可以使用环境变量FLASK_RUN_PORT,例如:

export FLASK_RUN_PORT=8000
flask run
 * Running on http://127.0.0.1:8000/

来源:The Flask docs