You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask应用启动时记录/显示应用名、主机及端口

实现Flask启动时仅打印一次自定义启动消息

方法一:模块级代码直接打印(推荐,启动时立即执行)

在你的应用入口文件(如simpleflask/app.py)中,创建Flask实例后添加如下代码:

from flask import Flask
import os

app = Flask(__name__)

# 从Flask已加载的环境变量中获取运行主机和端口(自动读取.flaskenv内容)
run_host = os.environ.get('FLASK_RUN_HOST', '127.0.0.1')
run_port = os.environ.get('FLASK_RUN_PORT', 5000)

# 仅在应用启动时打印一次消息
print(f"Running my.flask.app on http://{run_host}:{run_port} ...")

# 你的业务路由代码
@app.route('/')
def hello():
    return 'Hello World!'

当使用flask run启动时,模块级代码只会在应用初始化阶段执行一次,之后不会重复打印,完全满足需求。

方法二:请求钩子控制(适用于需要在首次请求时打印的场景)

如果你的场景需要在第一次请求到来时才打印消息(兼容Flask 2.0+),可以用全局标志结合请求钩子:

from flask import Flask
import os

app = Flask(__name__)
# 标记是否已打印启动消息
has_printed = False

@app.before_request
def print_startup_msg():
    global has_printed
    if not has_printed:
        run_host = os.environ.get('FLASK_RUN_HOST', '127.0.0.1')
        run_port = os.environ.get('FLASK_RUN_PORT', 5000)
        print(f"Running my.flask.app on http://{run_host}:{run_port} ...")
        has_printed = True

# 业务路由
@app.route('/')
def hello():
    return 'Hello World!'

关键说明

  • 无需手动解析.flaskenv文件:flask run启动时会自动读取.flaskenv中的变量并加载到系统环境中,通过os.environ.get()即可安全获取这些配置,完全符合“用Flask内部机制动态获取”的要求。
  • 方法一的优势是启动时立即打印,无需等待请求;方法二则更灵活,适合需要和请求生命周期绑定的场景。

内容的提问来源于stack exchange,提问作者Leszek Pachura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:37:08