首页 > 解决方案 > 如何在烧瓶中隐藏起始消息

问题描述

我要解决的问题是在启动烧瓶服务器时隐藏此消息:

 * Serving Flask app "for_so" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on

我找到的解决方案是这样的(参考:https ://stackoverflow.com/a/56103584/14531062 ):

import os
os.environ['WERKZEUG_RUN_MAIN'] = 'true'

这确实隐藏了它,但有一个小问题,我有一个关闭路线,我也在另一个线程中运行烧瓶应用程序,这是在关闭服务器时(参考:https ://stackoverflow.com/a/ 17053522/14531062(我无法使用Process))它会关闭整个进程Exit code 15,没有它,进程仍会继续运行,但应用程序已停止:

from flask import Flask, request
from threading import Thread

# without this part it shuts down the server fine and keeps running
# with this part it apparently shuts down the whole process
import os
os.environ['WERKZEUG_RUN_MAIN'] = 'true'


app = Flask(__name__)


@app.route('/shutdown')
def shutdown():
    func = request.environ.get('werkzeug.server.shutdown')
    func()
    return 'Shutting down...'


def run_app():
    Thread(target=app.run, kwargs={'debug': True, 'use_reloader': False}).start()


if __name__ == '__main__':
    run_app()
    while True:
        pass

要求是我需要保留其余的日志消息,并且我需要能够在不关闭其余进程的情况下关闭服务器。因此,要么有另一种方法来隐藏该消息,要么有另一种方法来关闭服务器。

标签: pythonflaskwerkzeug

解决方案


推荐阅读