• en
  • Language: ru
  • Documentation version: 1.1.x

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

Начиная с версии Flask 0.11 существует несколько встроенных способов запуска сервера разработки. Лучшим из них является утилита командной строки flask, но вы также можете продолжать использовать метод Flask.run().

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

Сценарий командной строки flask (Интерфейс командной строки) настоятельно рекомендуется для разработки, поскольку он обеспечивает превосходный опыт перезагрузки благодаря тому, как он загружает приложение. Основное использование выглядит следующим образом:

$ export FLASK_APP=my_application
$ export FLASK_ENV=development
$ flask run

Это включает среду разработки, включая интерактивный отладчик и перезагрузчик, а затем запускает сервер на http://localhost:5000/.

Отдельными функциями сервера можно управлять, передавая дополнительные аргументы в опцию run. Например, перезагрузчик может быть отключен:

$ flask run --no-reload

Примечание

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

В коде

Альтернативным способом запуска приложения является метод Flask.run(). Это немедленно запустит локальный сервер точно так же, как это делает сценарий flask.

Пример:

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

Это хорошо подходит для обычных случаев, но не подходит для разработки, поэтому начиная с версии Flask 0.11 и далее рекомендуется использовать метод flask. Причина этого в том, что из-за того, как работает механизм перезагрузки, возникают некоторые странные побочные эффекты (например, выполнение определенного кода дважды, иногда аварийное завершение работы без сообщения или смерть при возникновении синтаксической ошибки или ошибки импорта).

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