過渡到 Werkzeug 1.0

2018-02-24 15:39 更新

過渡到 Werkzeug 1.0

Werkzeug 原本有一個神奇的導(dǎo)入系統(tǒng)鉤子,如果啟用它則可以從一個模塊導(dǎo)入所有東西而且還可以根據(jù)實際需要選擇性加載。不幸的是,這種方法被證明是效率低下的,用它來代替Python實現(xiàn)和GAE是不可靠的。

從 0.7 開始我們不推薦短入口,強烈鼓勵從一個實際實現(xiàn)的模塊來導(dǎo)入。Werkzeug 1.0 將完全不支持這種神奇的導(dǎo)入鉤子。

因為手動去發(fā)現(xiàn)那么實際的函數(shù)被導(dǎo)入并重寫他們是一個痛苦和乏味的過程,所以我們寫了一個工具來幫助過渡。

自動重寫入口

舉個例子, Werkzeug < 0.7 版本推薦的方法是使用 escape 函數(shù),用法如下:

from werkzeug import escape

Werkzeug 0.7 版本推薦的方法是直接從工具包導(dǎo)入 escape 函數(shù)(1.0 版本這個方法將會變成強制性的)。為了自動重寫所有的入口你可以使用 werkzeug-import-rewrite script。

你可以通過 Python 和 Werkzeug 基礎(chǔ)代碼的文件夾列表來執(zhí)行它。它將會輸出一個 hg/git兼容的補丁文件。如下:

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

通過下列方法應(yīng)用補丁文件:

hg:

hg import new-imports.udiff

git:

git apply new-imports.udiff

patch:

patch -p1 < new-imports.udiff

停止使用廢棄的東西

Werkzeug 上的一些東西將停止更新,我們強烈建議替換掉即使他們短時間內(nèi)還可以使用。

不要使用:

  • werkzeug.script ,用 argparse 或其他相似的工具定制腳本替換它。
  • werkzeug.template, 用一個適當(dāng)?shù)哪0逡嫣鎿Q它。
  • werkzeug.contrib.jsrouting ,停止使用Javascript URL 生成器,它與許多公共公共路由的擴展性不是很好。
  • werkzeug.contrib.kickstart ,取代手寫代碼,實際上 Werkzeug API 變得越來越好,他不再是必需的。
  • werkzeug.contrib.testtools ,已經(jīng)不是那么有用了。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號