【发布时间】: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'把它放在开发类中并检查。