Почему сервер разработки Flask запускается дважды во время разработки
При запуске сервера разработки Flask пользователи могут заметить, что начальная строка печати отображается дважды. Такое поведение связано с использованием перезагрузки Werkzeug, которая создает дочерний процесс для облегчения обновлений при изменении кода.
Запуск перезагрузки
Приложение Flask запускается с метод app.run(), который внутренне использует сервер разработки Werkzeug. Функция restart_with_reloader() запускает дочерний процесс, вызывая повторный запуск сценария с помощью subprocess.call().
Отключите автоматическую перезагрузку
Чтобы подавить двойную печать , установите для use_reloader значение False в app.run(). В качестве альтернативы используйте команду запуска flask с флагом --no-reload:
FLASK_DEBUG=1 flask run --no-reload
Обнаружение перезагрузки
Чтобы убедиться, что приложение работает в дочернем процессе перезагрузки, используйте команду werkzeug.serving.is_running_from_reloader.
Альтернатива для глобальных переменных модуля
Если необходимо настроить глобальные переменные модуля, используйте декоратор @app.before_first_request, чтобы создать функцию, которая будет выполняться только один раз после каждой перезагрузки, по первому запросу. Однако обратите внимание, что этот подход может привести к множественным вызовам на серверах WSGI, использующим несколько процессов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3