Flask 已審核的擴(kuò)展

2021-08-10 10:53 更新

Flask 也有已審核的擴(kuò)展的概念。已審核的擴(kuò)展被作為 Flask 自身的一部分來測 試來保證在新版本中不會破壞。這些已審核的擴(kuò)展會在 Flask Extension Registry 中列出,并有相應(yīng)的標(biāo)記。如果你想要自己的擴(kuò)展 通過審核,你需要遵守下面的指導(dǎo)方針:

  1. 一個通過審核的 Flask 擴(kuò)展需要一個維護(hù)者。如果一個擴(kuò)展作者想要超越項(xiàng)目, 項(xiàng)目應(yīng)該尋找一個新的維護(hù)者,包括完整的源碼托管過渡和 PyPI 訪問。如果沒 有可用的維護(hù)者,請給 Flask 核心團(tuán)隊訪問權(quán)限。
  2. 一個通過審核的 Flask 擴(kuò)展必須確切地提供一個名為 flask_extensioname 的 包或模塊。它們也可能駐留在 flaskext 命名空間包內(nèi)部,雖然現(xiàn)在這不被推薦。
  3. 它必須伴隨一個可以使用 make testpython setup.py test 的調(diào)用測 試套件。對于用 make test 測試的套件,擴(kuò)展必須確保所有測試需要的依賴關(guān) 系都被自動處理好。如果測試由 python setup.py test 調(diào)用,測試的依賴關(guān)系 由 setup.py 文件指定。測試套件也必須是發(fā)行版的一部分。
  4. 通過審核的擴(kuò)展的 API 可以通過下面特性的檢查: - 一個通過審核的擴(kuò)展必須支持在同一個 Python 進(jìn)程中支持多個應(yīng)用 - 必須支持使用工廠模式創(chuàng)建應(yīng)用
  5. 必須以 BSD/MIT/WTFPL 許可
  6. 官方擴(kuò)展的命名模式是 Flask-ExtensionNameExtensionName-Flask
  7. 通過審核的擴(kuò)展必須在 setup.py 文件里定義好它們的依賴關(guān)系,除非因 其在 PyPI 上不可用而不能滿足這個依賴。
  8. 擴(kuò)展的文檔必須使用兩種 Flask 的 Sphinx 文檔主題中的一個
  9. setup.py 描述(因此PyPI 描述同)必須鏈接到文檔、網(wǎng)站(如果有), 并且必須有一個鏈接來自動安裝開發(fā)版本( PackageName==dev
  10. 安裝腳本中的 zip_safe 標(biāo)志必須被設(shè)置為 False ,即使擴(kuò)展對于 壓縮是安全的
  11. 現(xiàn)行擴(kuò)展必須支持 Python 2.6 以及 2.7

擴(kuò)展導(dǎo)入的過渡

一段時間,我們推薦對 Flask 擴(kuò)展使用命名空間包。這在實(shí)踐中被證明是有問題 的,因?yàn)樵S多不同命名空間包系統(tǒng)存在競爭,并且 pip 會自動在不同的系統(tǒng)中切 換,這給用戶導(dǎo)致了許多問題。

現(xiàn)在,我們推薦命名包為 flask_foo 替代過時的 flaskext.foo 。Flask 0.8 引入了重定向?qū)胂到y(tǒng),允許從 flask.ext.foo 導(dǎo)入,并且如果 flaskext.foo 失敗時,會首先嘗試 flask_foo 。

Flask 擴(kuò)展應(yīng)該力勸用戶從 flask.ext.foo 導(dǎo)入,而不是 flask_fooflaskext_foo ,這樣擴(kuò)展可以遷移到新的包名稱而不煩擾用戶。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號