Армин Ронахер опубликовал в своем блоге новость об обновлении популярных веб-фреймоворков для питона: Flask и лежащего в его основе Werkzeug. Самым главным изменением стала поддержка питона 3 версии (начиная с 3.3 и выше). Также низкоуровнеый API Werkzeug был несколько изменен, чтобы с одной стороны реализовать поддержку спецификации из PEP 3333, а с другой — не потерять в производительности. С новой версией теряется поддержка питона версии 2.5.
Если вы используете Werkzeug, то, с обновленной версией, возможно, придется повозиться. Что касается Flask — то тут все несколько проще, т.к. API не сильно изменился.
Важно заметить, что Flask и Werkzeug в определенном смысле несколько затянули обновлением, ведь наиболее популярные компоненты, составляющие стандартный стек фласк-приложения: шаблонный движок Jinja2 и ORM SQLAlchemy уже достаточно продолжительное время поддерживают питон третьей версии. К слову, в свое время, Армин критиковал у себя в блоге слишком радикальные изменения языка, и довольно холодно отзывался о третьей версии.
Другие изменения
Werkzeug
- Возможность отправки трейсбека ошибки из Werkzeug в приватный гист на гитхабе.
- Небольшие изменения в классах HTTP эксепшенов Werkzeug.
- Улучшенная поддержка IRI, немного нарушающая соответствующие RFC. Это сделано чтобы реализовать парсинг существующих схем.
- Множество вспомогательных функций, чтобы скостить разницу между PEP 333 и PEP 3333, а также поддержкой WSGI на версиях 2 и 3 версиях питона.
Flask
- В Flask'е улучшен стандартный модуль
json
, чтобы объединить поддержку 2 и 3 версии питона, а также обеспечить различными впомогательными функциями. Он позволяет сериализовать распространенные объекты типа UUID илиdatetime
-объекты. - Улучшена работа с видимостью контекста приложения. Теперь шаблоны могут быть отрендерены только из контекста приложения, и глобавльный контекст
flask.g
связан с ним. Это изменение упрощает работу, например с поддержкой подключения к БД не завязываясь на время жизни HTTP-запросов. - Улучшена согласованность обработки ошибок фремворком.
- Добавлены параметры конфигурации JSON-сериализации. Например порядок ключей или «pretty-print» форматирование.
Текущие номера версий: Flask — 0.10, Werkzeug — 0.9.
И, для статистики, в силу постоянно растущей поддержки третьего питона различными крупными проектами, опрос (можно голосовать за несколько вариантов).
Only registered users can participate in poll. Log in, please.
Какая версия питона используется у вас на продакшене?
1.38% <= 2.57
10.02% 2.651
72.69% 2.7370
0.59% 3.03
1.57% 3.18
4.72% 3.224
25.93% 3.3132
509 users voted. 200 users abstained.