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

Mar*_*hia 33 python flask

我想更改运行我的应用程序的主机和端口.我设置hostport进入app.run,但flask run命令仍然在默认情况下运行127.0.0.1:8000.如何更改flask命令使用的主机和端口?

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

dav*_*ism 56

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

flask run -h localhost -p 3000
Run Code Online (Sandbox Code Playgroud)

传递--help完整的选项列表.


切勿将开发服务器暴露给外部(例如绑定到SERVER_NAME).使用生产WSGI服务器,如uWSGI或Gunicorn.

gunicorn -w 2 -b 0.0.0.0:3000 myapp:app
Run Code Online (Sandbox Code Playgroud)


小智 11

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

set FLASK_RUN_HOST=0.0.0.0
set FLASK_RUN_PORT=3000
Run Code Online (Sandbox Code Playgroud)


Akr*_*nix 8

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

export FLASK_RUN_PORT=8000
flask run
 * Running on http://127.0.0.1:8000/
Run Code Online (Sandbox Code Playgroud)

资料来源:Flask文档

  • 为了完整起见,环境变量“FLASK_RUN_HOST”可用于更改主机。 (7认同)
  • 为了进一步完整,您可以通过设置遵循“FLASK_COMMAND_OPTION”模式的环境变量来设置“flask <command>”上的选项。例如,不要设置 `flask run --host 8000` 设置 `export FLASK_RUN_HOST=8000`,而不设置 `flask paths --sortmethods` 设置 `export FLASK_ROUTES_SORT=methods` (2认同)

小智 7

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

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

python app.py
Run Code Online (Sandbox Code Playgroud)


Tek*_*uas 5

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

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

flask run --host=0.0.0.0
Run Code Online (Sandbox Code Playgroud)

资源


Sta*_*emy 5

你也可以使用它:

if __name__ == "__main__":
    app.run(host='127.0.0.1', port=5002)
Run Code Online (Sandbox Code Playgroud)

然后在控制台中使用它

set FLASK_ENV=development
python app.py
Run Code Online (Sandbox Code Playgroud)