Spec-Zone.ru › Werkzeug 0.16

Переход на Werkzeug 1.0

В Werkzeug изначально была магическая система импорта, которая позволяла импортировать всё из одного модуля, а фактические реализации загружать по мере необходимости. К сожалению, это оказалось медленным и ненадежным на альтернативных реализациях Python и на платформе Google App Engine.

Начиная с версии 0.7, мы рекомендуем отказаться от коротких импортов и настоятельно рекомендуем импортировать функции непосредственно из соответствующего модуля реализации. Werkzeug 1.0 полностью отключит магическую систему импорта.

Поскольку поиск места импорта функций и переписывание их вручную — это болезненная и скучная задача, мы разработали инструмент, который поможет в этом переходе.

Автоматическое переписывание импортов

Например, в Werkzeug версии < 0.7 рекомендуемым способом использования функции escape был:

from werkzeug import escape

В Werkzeug версии 0.7 рекомендуемый способ импорта этой функции — непосредственно из модуля utils (а в версии 1.0 это станет обязательным). Для автоматического переписывания всех импортов можно использовать скрипт werkzeug-import-rewrite.

Его можно использовать, выполнив его с помощью Python и списком папок с кодом на базе Werkzeug. Он выведет файл патча, совместимый с hg/git. Пример создания файла патча:

$ python werkzeug-import-rewrite.py . > new-imports.udiff

Для применения патча подойдут следующие методы:

hg:

hg import new-imports.udiff

git:

git apply new-imports.udiff

patch:

patch -p1 < new-imports.udiff

Устаревший и удаленный код

Некоторые вещи, которые были важны для ядра Werkzeug (работа с WSGI и HTTP), были удалены. Они не использовались широко или лучше обслуживаются специализированными библиотеками.

  • werkzeug.script, заменяйте на Click или другую специализированную библиотеку для командной строки.
  • werkzeug.template, заменяйте на Jinja или другую специализированную библиотеку для шаблонов.
  • werkzeug.contrib.jsrouting, этот тип генерации URL в JavaScript плохо масштабировался. Вместо этого генерируйте URL при рендеринге шаблонов или добавьте поле URL в JSON-ответ.
  • werkzeug.contrib.kickstart, заменяйте на собственный код, если необходимо, API Werkzeug в целом улучшен. Flask — это более высокий уровень версии этого.
  • werkzeug.contrib.testtools, не было существенно полезнее по умолчанию.
  • werkzeug.contrib.cache, был выделен в cachelib.
  • werkzeug.contrib.atom, выходил за рамки основного фокуса Werkzeug, замените на специализированную библиотеку для генерации лент.
  • werkzeug.contrib.limiter, ограничение потока лучше обрабатывается библиотекой WSGI-сервера, а не средством.

© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/0.16.x/transition/

Spec-Zone.ru

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