Python Flask, перезагрузка с перезагрузчиком: что это значит?

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

Это мой код.

#!venv/bin/python
from flask import Flask
from flask import request


def buildCache():
    print 'Hello World'

buildCache()

app = Flask(__name__)


@app.route('/search')
def index():
    query = request.args.get('query','', type=str);
    return  query


if __name__ == '__main__':
    app.run(debug = True)

когда я запускаю его

venv/bin/python ./app.py
Hello World
 * Running on http://127.0.0.1:5000/
 * Restarting with reloader
Hello World

Я не понимаю, почему метод buildCache вызывается дважды? Кажется, что это связано с "Перезапуск с reoloader", что это значит? Как я могу убедиться, что buildCache выполняется только один раз, до запуска сервера.

Ответ 1

Это "перезагружает" код всякий раз, когда вы вносите изменения, чтобы вам не пришлось вручную перезапускать приложение, чтобы увидеть изменения. Это очень полезно, когда вы делаете частые изменения.

Вы можете отключить перезагрузку, установив параметр отладки в значение False.

app.run(debug=False)

"[If debug=True] отладчик начнет работать, когда произойдет необработанное исключение, и интегрированный сервер автоматически перезагрузит приложение, если будут обнаружены изменения в коде."

Источник: http://flask.pocoo.org/docs/0.10/api/#flask.Flask.debug

Ответ 2

Из документации фляжки:

Если вы включите поддержку отладки, сервер перезагрузится при изменении кода, и он также предоставит вам полезный отладчик, если все будет не так.

См. this.

Попробуйте запустить приложение, а затем выполните touch app.py, если режим отладки будет включен, сервер перезагрузит приложение.