Каков правильный подход к вызову функций после запуска колбы?

Я немного озадачен тем, как сделать что-то, что, на мой взгляд, будет довольно простым. У меня есть простое приложение, написанное с использованиемFlask, Это выглядит примерно так:

from flask import Flask

app = Flask(__name__)

def _run_on_start(a_string):
    print "doing something important with %s" % a_string

@app.route('/')
def root():
    return 'hello world'

if __name__ == "__main__":
    if len(sys.argv) < 2:
        raise Exception("Must provide domain for application execution.")
    else:
        DOM = sys.argv[1]
        _run_on_start("%s" % DOM)
        app.run(debug=True)

Я обнаружил, что мой терминал выводит операторы печати в_run_on_start но не другого обычного кода отладки приложения Flask. Если я уберу вызов перед app.run, вывод нормальный. Далее я нахожу вывод_run_on_start повторяться дважды при запуске, хотя я не знаю, является ли это каким-то странным выводом или функция на самом деле вызывается дважды.

Я предполагаю, что это не правильный способ добавить вызов функции перед вызовомapp.run, Я просмотрел документы Flask и нашел упоминания о различных декораторах, которые можно использовать, которые позволяют вам выполнять функцию до / после определенных запросов, но я хочу выполнить вызов при запуске сервера приложений.

Кроме того, я понимаю, что если я вызываю этот модуль из другого модуля, т.е. не когда__name__ != "__main__" мой я не получу мой звонок_run_on_start.

Какой правильный подход здесь? В обоих случаях, когда я начинаю с CL и с другого модуля?

Ответы на вопрос(3)

Ваш ответ на вопрос