Как остановить колбу от инициализации дважды в режиме отладки?



при построении сервиса Flask в Python и установке режима отладки, сервис Flask инициализируется дважды. При инициализации загружает кэш и тому подобное, это может занять некоторое время. Необходимость делать это дважды раздражает, когда в режиме разработки (отладки). Когда debug выключен, служба Flask инициализируется только один раз.



Как остановить колбу от инициализации дважды в режиме отладки?

517   2  

2 ответов:

самое простое, что здесь можно было бы добавить use_reloader=False на ваш вызов app.run - это: app.run(debug=True, use_reloader=False)

кроме того, вы можете проверить значение WERKZEUG_RUN_MAIN в среду:

if os.environ.get("WERKZEUG_RUN_MAIN") == "true":
    # The reloader has already run - do what you want to do here

однако условие немного более запутано, когда вы хотите, чтобы поведение происходило в любое время за исключением в процессе погрузки:

if not app.debug or os.environ.get("WERKZEUG_RUN_MAIN") == "true":
    # The app is not in debug mode or we are in the reloaded process

можно использовать before_first_request припев:

@app.before_first_request
def initialize():
    print "Called only once, when the first request comes in"

Comments

    Ничего не найдено.