Qual é a abordagem correta para chamar funções após a execução de um aplicativo de balão?

Estou um pouco confuso sobre como fazer algo que pensei que seria bastante simples. Eu tenho um aplicativo simples escrito usandoFlask. Parece algo assim:

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)

O que estou descobrindo é que meu terminal está exibindo as instruções de impressão em_run_on_start mas não do outro código de depuração usual do aplicativo Flask. Se eu remover a chamada antes do app.run, a saída será normal. Além disso, estou encontrando a saída de_run_on_start ser repetido duas vezes na inicialização, embora eu não saiba se é alguma saída estranha ou se a função está sendo chamada duas veze

Suponho que essa não seja a maneira correta de adicionar uma chamada de função antes de ligar paraapp.run. Procurei nos documentos do Flask e encontrei menções de vários decoradores que podem ser usados, que permitem executar uma função antes / depois de determinadas solicitações, mas quero executar a chamada quando o servidor de aplicativos estiver em execução.

Além disso, percebo que se eu chamar esse módulo de outro módulo, ou seja, não quando__name__ != "__main__" meu não vou receber minha ligação para_run_on_start.

Qual é a abordagem correta aqui? Nos dois casos, quando estou iniciando no CL e em outro módulo?

questionAnswers(6)

yourAnswerToTheQuestion