Flask 已審核的擴展

2021-08-10 10:53 更新

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

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

擴展導入的過渡

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

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

Flask 擴展應該力勸用戶從 flask.ext.foo 導入,而不是 flask_fooflaskext_foo ,這樣擴展可以遷移到新的包名稱而不煩擾用戶。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號