Команда проекта Pallets представила релиз фреймворка Flask 1.0

flask

В новой версии Python-фреймворка Flask представлены расширенные возможности командной строки, обновленное ведение программных логов, обработка прерываний, усовершенствованный механизм тестирования приложений и многое другое.

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

  • При установке пакета python-dotenv командная строка Flask загружает переменные окружения из файлов c расширениями .env и .flaskenv. Благодаря этому пользователям не нужно экспортировать их каждый раз при открытии нового терминала.
  • Для отладки и тестирования приложения в режиме командной строки создан метод test_cli_runner.
  • Интерфейс командной строки стал более гибким. Теперь переменная FLASK_APP может указывать на фабрику приложений (app factory). FLASK_ENV описывает среду, в которой запускается приложение, например, среду разработки. В большинстве случаев эта переменная заменяет FLASK_DEBUG. Более подробно о режиме командной строки можно узнать в документации.

Обработка исключений

  • Появилась поэтапная обработка ошибок. При возникновении исключения первым делом проверяется наличие зарегистрированного обработчика ошибок в коде. Если он отсутствует, проверяется наличие наиболее подходящего с помощью анализа иерархий. Если обработчик не зарегистрирован и там, то код ошибки выбирается в подклассах HTTPException.
  • Сообщение об ошибке в режиме отладки при доступе к отсутствующим ключам из модуля request.form стало более информативным.

Ведение журнала приложения

Инструмент для логирования app.logger стал проще в настройке. Теперь он всегда имеет вид объекта flask.app. Инструмент автоматически добавляет обработчик логов по умолчанию, если отсутствуют созданные пользователем, и никогда не удаляет уже существующие.

Другие изменения Flask

  • В функции тестирования приложений test_client() появился аргумент json для отправления данных в формате JSON. Получить и декодировать эти данные можно с помощью метода get_json() объекта Response.
  • В среду разработки интегрирована параллельная обработка запросов.
  • Прекращена поддержка Python 2.6 и 3.3.
  • Удален устаревший модуль flask.ext. Теперь расширения можно импортировать непосредственно по именам программных пакетов.
  • Написан патч для уязвимости JSON, связанной с некорректной кодировкой байтов. В новой версии для этого формата можно использовать только UTF.

Вместе с новым релизом были переписаны и структурированы документация, руководства и примеры, которые упростят обучение новым пользователям. Установить фреймворк для Python можно с помощью команды pip install -U Flask.

Полный список изменений в новой версии представлен на официальном сайте разработчиков.

О том, как использовать Flask, чтобы создать, например, бота для Facebook Messenger, можно прочитать в нашем материале.

Источник: блог The Pallets Projects

Ещё интересное для вас:
Тест: что вы знаете о работе мозга?
Что посмотреть и куда сходить разработчку — ближайшие события