Spec-Zone.ru › Flask 2.0

Сервер разработки

Flask предоставляет команду run для запуска приложения с сервером разработки. В режиме разработки этот сервер предоставляет интерактивный отладчик и будет перезагружаться при изменении кода.

Предупреждение

Не используйте сервер разработки при развертывании в производство. Он предназначен только для использования во время локальной разработки. Он не предназначен для высокой эффективности, стабильности или безопасности.

См. Варианты развертывания для вариантов развертывания.

Командная строка

Рекомендуется использовать скрипт командной строки flask run для запуска сервера разработки. Он требует установки переменной окружения FLASK_APP для указания пути к вашему приложению и FLASK_ENV=development для полного включения режима разработки.

$ export FLASK_APP=hello
$ export FLASK_ENV=development
$ flask run
> set FLASK_APP=hello
> set FLASK_ENV=development
> flask run
> $env:FLASK_APP = "hello"
> $env:FLASK_ENV = "development"
> flask run

Это активирует среду разработки, включая интерактивный отладчик и перезагрузчик, а затем запускает сервер по адресу http://localhost:5000/. Используйте flask run --help для просмотра доступных параметров и Интерфейс командной строки для получения подробных инструкций по настройке и использованию командной строки.

Примечание

До Flask 1.0 переменная окружения FLASK_ENV не поддерживалась, и вам нужно было включить режим отладки, экспортировав FLASK_DEBUG=1. Это по-прежнему можно использовать для управления режимом отладки, но рекомендуется использовать настройку среды разработки, как показано выше.

Леничная или немедленная загрузка

При использовании команды flask run с перезагрузчиком сервер будет продолжать работать, даже если вы введете синтаксические ошибки или другие ошибки инициализации в код. Доступ к сайту отобразит интерактивный отладчик для ошибки, а не приведет к аварийному завершению сервера. Эта функция называется «леничной загрузкой».

Если синтаксическая ошибка уже присутствует при вызове flask run, она завершится немедленно и отобразит трассировку стека, а не будет ждать, пока не будет обращён доступ к сайту. Это предназначено для того, чтобы ошибки были более заметными изначально, при этом сервер всё ещё способен обрабатывать ошибки при перезагрузке.

Чтобы переопределить это поведение и всегда завершаться немедленно, даже при перезагрузке, передайте опцию --eager-loading. Чтобы всегда поддерживать работу сервера, даже при первоначальном вызове, передайте --lazy-loading.

В коде

В качестве альтернативы команде flask run, сервер разработки также можно запустить из Python с помощью метода Flask.run(). Этот метод принимает аргументы, аналогичные параметрам командной строки для управления сервером. Основное различие с командой командной строки заключается в том, что сервер завершится ошибкой, если при перезагрузке появятся ошибки.

debug=True можно передать для включения отладчика и перезагрузчика, но переменная среды FLASK_ENV=development всё ещё требуется для полного включения режима разработки.

Размещайте вызов в блоке main, иначе он будет мешать при попытке импорта и запуска приложения с сервером производства позже.

if __name__ == "__main__":
    app.run(debug=True)
$ python hello.py

© 2007–2021 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/2.0.x/server/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API