Django设置加载器和验证器,具有当地风味。
django-confit的Python项目详细描述
django confit简化了django配置管理。
作为django用户,以便配置项目:
- django confit帮助您加载设置,无论它们在何处,无论 格式:python模块、环境变量、json、yaml…
- django confit验证设置,即它告诉您 丢失,格式错误…
作为django库开发人员,以帮助应用程序的用户:
- 使用django confit为应用程序编写配置模式 工具包和约定。
- django confit帮助您记录应用程序的特定 配置。
作为非django用户,以便部署和运行django驱动的项目:
- 根据您的工作流和 配置工具包。你知道这个项目可以用 django confit。
- 您希望应用程序在实际运行之前验证配置 使用它,并用可读的输出报告错误。
示例
在项目的settings.py文件中,让我们从 位置:
importosimportdjango_confit# Load settings.raw_settings={}raw_settings.update(django_confit.load_module('myproject.default_settings'))raw_settings.update(django_confit.load_file(open('/etc/myproject.json')))raw_settings.update(django_confit.load_mapping(os.environ,prefix='MYPROJECT_')# Update globals, because that's the way Django uses DJANGO_SETTINGS_MODULE.globals().update(raw_settings)
也可以使用内置模式验证设置:
# Validate and clean settings.cleaned_settings=django_confit.validate_settings(raw_settings)# Update globals, because that's the way Django uses DJANGO_SETTINGS_MODULE.globals().update(cleaned_settings)
警告
目前,最新的django>;=1.7没有内置模式。
项目状态
今天,django confit是概念的证明:
- 加载设置非常简单。
- 验证配置很容易…只要你有模式。
- 创建配置架构是冗长的。它使用的colander很好 功能,但可能不是最终的选择。
- 未实现从架构生成文档。
主要的限制是,当使用验证时,模式是 必须的。如果某个配置指令未在架构中注册,则 将不会出现在验证输出中。意思是,如果你安装了一个新的 第三方django应用程序,需要为此配置架构 应用程序,否则其设置将无法通过验证。所以最想要的 贡献正在提交第三方的配置架构 应用程序。
请注意,这种行为是需要的特性。作为作者,我 认为库应该始终为它们使用的设置提供架构。 我不认为答案应该是django confit。我敢打赌,如果 模式被django社区广泛采用,配置将是 更容易管理。
django confit并不假装是最终的配置管理 Django应用程序。它的目标是展示如何解决一些问题,以及 突出优点。django confit是一个提议。如果你喜欢的话 概念,然后您可以:
- 当然可以使用django confit!
- 讨论,传播信息,发送反馈。
- 改进代码。有关第三方应用程序配置架构的帮助将是 很感激。
资源
- 文档:https://django-confit.readthedocs.org
- PYPI页面:https://pypi.python.org/pypi/django-confit/
- 代码库:https://github.com/benoitbryon/django-confit
- 错误跟踪器:https://github.com/benoitbryon/django-confit/issues
- 连续积分:https://travis-ci.org/benoitbryon/django-confit
- 路线图:https://github.com/benoitbryon/django-confit/milestones