Как настроить сообщение для запуска на Flask? - PullRequest
2 голосов
/ 24 апреля 2020

Я запускаю приложение Flask в Cloud9. Всякий раз, когда я запускаю свое приложение Flask, оно говорит следующее сообщение:

 * Serving Flask app "app" (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: off
 * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)

Есть ли способ изменить это сообщение? Я хотел бы сказать что-то вроде этого:

Connect to me at http://0.0.0.0:80/!

Я искал переполнение стека и в Интернете, но ничего не смог найти. Я запускаю свое приложение с app.run().
Кроме того, возможно ли сделать URL-адрес голубым?

1 Ответ

1 голос
/ 24 апреля 2020

Вы можете изменить все, кроме Running on http://0.0.0.0:80/ (Press CTRL+C to quit), изменив show_server_banner из flask.cli:

from flask import Flask
import sys

cli = sys.modules['flask.cli']

# put your own message here
cli.show_server_banner = lambda *x: click.echo("My nice message")

app = Flask(__name__)
app.run(host='0.0.0.0', port='80')

Чтобы избавиться от сообщения Running on http://0.0.0.0:80/ ..., вы можете использовать unittest.mock:

from unittest import mock
from werkzeug._internal import _log

def my_startup_log(*args):
    # log all messages except for the * Running on message
    if not args[1].startswith(" * Running on"):
        return _log(*args)

app = Flask(__name__)
with mock.patch('werkzeug.serving._log') as mocked:
    # patch the logger object and replace with own logger
    mocked.side_effect = my_startup_logger
    app.run(host='0.0.0.0', port='8000')

Это очень странно и зависит от внутренней реализации flask. Будьте осторожны при использовании этого в производственном коде, поскольку это может легко сломаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...