【问题标题】:How set the host and the port of a Flask app in config module? [duplicate]如何在配置模块中设置 Flask 应用程序的主机和端口? [复制]
【发布时间】:2018-03-17 05:37:43
【问题描述】:

要在 Flask 中执行应用程序,我们使用方法

app.run ()

在这个方法中我们可以传递配置参数,其中:

host, port, debug

默认情况下,Flask 应用程序在

中执行
host = localhost
port = 5000

因此,如果我们想更改该配置,我们将其传递给 run 方法

app.run (host = "10.100.100.10", port = 9566)

如果想要为您的应用程序(生产、开发、测试)提供不同的配置,您必须定义一个配置字典,如下所示:

app.config.update (
    DEBUG = True,
    SECRET_KEY = '...'
)

或更多指定创建配置模块:

class Base(object):
    DEBUG = False
    SECRET_KEY = "Shhhh is a secret"
    SERVER_NAME="localhost:5000"

class Develop(Base):
    SERVER_NAME="10.100.100.10:5001"

阅读(http://flask.pocoo.org/docs/0.12/config/)我发现了这个属性:

SERVER_NAME

引用 Flask 文档:

服务器的名称和端口号。需要子域支持 (例如 .: 'myapp.dev:5000') 注意 localhost 不支持 子域,因此将其设置为“localhost”无济于事。设置为 默认情况下,SERVER_NAME 也可以在没有请求的情况下生成 URL 上下文,但带有应用程序上下文。

这个属性应该改变主机和端口。

然后我定义了这个:

app.config.update (
    DEBUG = True,
    SERVER_NAME = "10.100.100.10:6500"
)

and

class Base(object):
    DEBUG = False
    SECRET_KEY = "Shhhh is a secret"
    SERVER_NAME="localhost:5000"

class Develop(Base):
    SERVER_NAME="10.100.100.10:5001"

and

app = Flask(__name__)

app.config.from_object('config.Develop')

因此在执行应用程序时它一直显示:

Running in 127.0.0.1:5000

如何让我的应用程序在另一个主机和端口上运行,而不必在 run 方法中使用参数?

【问题讨论】:

  • 如果您使用flask 命令从命令行启动烧瓶应用程序,您必须将FLASK_RUN_PORT 环境变量设置为您希望应用程序运行的端口(例如export FLASK_RUN_PORT=8000) 或将端口作为参数传递:flask run --port 8000。看看这里:flask.pocoo.org/docs/1.0/cli/#setting-command-options
  • 从烧瓶 1.1.x 开始,这是有效的:SERVER_NAME = '0.0.0.0:8000' 把它放在开发类中并检查。

标签: python flask


【解决方案1】:

为什么需要在run方法之外设置端口?不要忘记这样的部署仅用于开发目的。在您的内置服务器中,但您可以像这样更改端口:在某处您应该有类似 app.run() 的东西 我正在发布一个可运行的代码,它的端口设置为 5001。希望对您有所帮助。

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run(port=5001)

【讨论】:

  • 这仍然在烧瓶 1.0.2 上的端口 5000(不是 5001)上启动
  • app.run 不适用于生产
  • 它仍在 5000 端口上运行!
猜你喜欢
  • 2014-11-23
  • 2015-10-19
  • 1970-01-01
  • 2016-04-12
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多