要在Flask中执行应用程序,我们使用的方法
app.run ()
Run Code Online (Sandbox Code Playgroud)
在这种方法中,我们可以传递配置参数,其中:
host, port, debug
Run Code Online (Sandbox Code Playgroud)
默认情况下,Flask应用程序在
host = localhost
port = 5000
Run Code Online (Sandbox Code Playgroud)
因此,如果要更改该配置,则将其传递给run方法
app.run (host = "10.100.100.10", port = 9566)
Run Code Online (Sandbox Code Playgroud)
如果希望为您的应用程序使用不同的配置(生产,开发,测试),则必须定义一个配置字典,如下所示:
app.config.update (
DEBUG = True,
SECRET_KEY = '...'
)
Run Code Online (Sandbox Code Playgroud)
或更指定创建一个配置模块:
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"
Run Code Online (Sandbox Code Playgroud)
阅读(http://flask.pocoo.org/docs/0.12/config/),我发现此属性:
SERVER_NAME
Run Code Online (Sandbox Code Playgroud)
引用Flask文档:
服务器的名称和端口号。支持子域是必需的(例如。:'myapp.dev:5000')。请注意,本地主机不支持子域,因此将其设置为“本地主机”无济于事。默认情况下,也设置为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')
Run Code Online (Sandbox Code Playgroud)
结果,它在执行应用程序时一直显示:
Running in 127.0.0.1:5000
Run Code Online (Sandbox Code Playgroud)
如何使我的应用程序在其他主机和端口上运行,而不必在run方法中使用参数?
为什么需要在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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16840 次 |
最近记录: |