Flask 已審核的擴(kuò)展

2021-08-10 10:53 更新

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

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

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

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

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)