Flask 已审核的扩展

2021-08-10 10:53 更新

Flask 也有已审核的扩展的概念。已审核的扩展被作为 Flask 自身的一部分来测 试来保证在新版本中不会破坏。这些已审核的扩展会在 Flask Extension Registry 中列出,并有相应的标记。如果你想要自己的扩展 通过审核,你需要遵守下面的指导方针:

  1. 一个通过审核的 Flask 扩展需要一个维护者。如果一个扩展作者想要超越项目, 项目应该寻找一个新的维护者,包括完整的源码托管过渡和 PyPI 访问。如果没 有可用的维护者,请给 Flask 核心团队访问权限。
  2. 一个通过审核的 Flask 扩展必须确切地提供一个名为 flask_extensioname 的 包或模块。它们也可能驻留在 flaskext 命名空间包内部,虽然现在这不被推荐。
  3. 它必须伴随一个可以使用 make testpython setup.py test 的调用测 试套件。对于用 make test 测试的套件,扩展必须确保所有测试需要的依赖关 系都被自动处理好。如果测试由 python setup.py test 调用,测试的依赖关系 由 setup.py 文件指定。测试套件也必须是发行版的一部分。
  4. 通过审核的扩展的 API 可以通过下面特性的检查: - 一个通过审核的扩展必须支持在同一个 Python 进程中支持多个应用 - 必须支持使用工厂模式创建应用
  5. 必须以 BSD/MIT/WTFPL 许可
  6. 官方扩展的命名模式是 Flask-ExtensionNameExtensionName-Flask
  7. 通过审核的扩展必须在 setup.py 文件里定义好它们的依赖关系,除非因 其在 PyPI 上不可用而不能满足这个依赖。
  8. 扩展的文档必须使用两种 Flask 的 Sphinx 文档主题中的一个
  9. setup.py 描述(因此PyPI 描述同)必须链接到文档、网站(如果有), 并且必须有一个链接来自动安装开发版本( PackageName==dev
  10. 安装脚本中的 zip_safe 标志必须被设置为 False ,即使扩展对于 压缩是安全的
  11. 现行扩展必须支持 Python 2.6 以及 2.7

扩展导入的过渡

一段时间,我们推荐对 Flask 扩展使用命名空间包。这在实践中被证明是有问题 的,因为许多不同命名空间包系统存在竞争,并且 pip 会自动在不同的系统中切 换,这给用户导致了许多问题。

现在,我们推荐命名包为 flask_foo 替代过时的 flaskext.foo 。Flask 0.8 引入了重定向导入系统,允许从 flask.ext.foo 导入,并且如果 flaskext.foo 失败时,会首先尝试 flask_foo

Flask 扩展应该力劝用户从 flask.ext.foo 导入,而不是 flask_fooflaskext_foo ,这样扩展可以迁移到新的包名称而不烦扰用户。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号