Flask 也有已审核的扩展的概念。已审核的扩展被作为 Flask 自身的一部分来测
试来保证在新版本中不会破坏。这些已审核的扩展会在
Flask Extension Registry 中列出,并有相应的标记。如果你想要自己的扩展
通过审核,你需要遵守下面的指导方针:
- 一个通过审核的 Flask 扩展需要一个维护者。如果一个扩展作者想要超越项目,
项目应该寻找一个新的维护者,包括完整的源码托管过渡和 PyPI 访问。如果没
有可用的维护者,请给 Flask 核心团队访问权限。 - 一个通过审核的 Flask 扩展必须确切地提供一个名为 flask_extensioname 的
包或模块。它们也可能驻留在 flaskext 命名空间包内部,虽然现在这不被推荐。 - 它必须伴随一个可以使用 make test 或 python setup.py test 的调用测
试套件。对于用 make test 测试的套件,扩展必须确保所有测试需要的依赖关
系都被自动处理好。如果测试由 python setup.py test 调用,测试的依赖关系
由 setup.py 文件指定。测试套件也必须是发行版的一部分。 - 通过审核的扩展的 API 可以通过下面特性的检查:
– 一个通过审核的扩展必须支持在同一个 Python 进程中支持多个应用
– 必须支持使用工厂模式创建应用 - 必须以 BSD/MIT/WTFPL 许可
- 官方扩展的命名模式是 Flask-ExtensionName 或 ExtensionName-Flask
- 通过审核的扩展必须在 setup.py 文件里定义好它们的依赖关系,除非因
其在 PyPI 上不可用而不能满足这个依赖。 - 扩展的文档必须使用两种 Flask 的 Sphinx 文档主题中的一个
- setup.py 描述(因此PyPI 描述同)必须链接到文档、网站(如果有),
并且必须有一个链接来自动安装开发版本( PackageName==dev ) - 安装脚本中的 zip_safe 标志必须被设置为 False ,即使扩展对于
压缩是安全的 - 现行扩展必须支持 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_foo
或 flaskext_foo ,这样扩展可以迁移到新的包名称而不烦扰用户。
作者:admin,如若转载,请注明出处:https://www.web176.com/flask2/21602.html