Spec-Zone.ru › Werkzeug 0.15

Переход на Werkzeug 1.0

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

Начиная с версии 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-сервера, а не middleware.

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

Spec-Zone.ru

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