跳转到主要内容

Django可组合设置加载器。

项目描述

We are under CI!!

旨在从python模块和位于/etc中的python脚本中组合您的设置。

在您的 my_app/settings/__init__.py 中调用加载器

from django_compose_settings import modules_loader

locals().update(modules_loader(prefix='my_app', default='base,etc,post'))

my_app/settings/base.py 中定义默认值,例如

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# ...

my_app/settings/etc.py 中调用etc加载器

from django_compose_settings import etc_loader

locals().update(etc_loader(prefix='my_app'))

您可以在 my_app/settings/post.py 中按如下方式验证设置

import __settings__

assert hasattr(__settings__, 'BASE_DIR'), 'BASE_DIR required'

Etc设置

以下是您的 /etc/my_app 的一个示例树结构

/etc/my_app/
├── settings.d
│   ├── 00_prod1.py
│   └── 99_local.py
└── settings.py

每个 .py 文件都是一个如上所述的常规 可组合 设置文件。

MY_APP_SETTINGS

您可以通过为您的应用程序设置特定的SETTINGS环境变量来覆盖您的设置,如下所示

$ MY_APP_SETTINGS=base,post python

>>> import logging
>>> logging.basicConfig(
...     level=logging.INFO,
...     format='%(asctime)s %(levelname)-8s %(name)s  %(message)s'
... )

>>> import os
>>> import sys
>>> sys.path.append(os.path.join(os.path.abspath('tests'), 'fixtures'))

>>> from my_app import settings

2015-11-23 10:59:09,964 INFO     django_compose_settings  Loaded my_app.settings.base
2015-11-23 10:59:09,964 INFO     django_compose_settings  Loaded my_app.settings.post

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

由以下组织支持