Django的一个简单的、可扩展的基于YamlBase的配置策略
django-settings-manager的Python项目详细描述
设置管理器
这个项目为管理Django设置提供了一个简单且可扩展的策略。在
设置文件格式
主要有三个部分:
- configure—这是在中的大多数处理之前设置的设置.py,并且应该主要用于启用/禁用内置功能。例如,设置.py如果启用远程用户验证为true,则可能配置远程用户身份验证。在
- override—这是用来重写的设置.py. 此部分用于数据库设置和其他特定于环境的更复杂的配置。在
- inject—这用于覆盖使用某个内置函数或任何可用的用户定义函数的值。在
示例设置.py文件
importsysimportosfromsettings_managerimportSettingsManagersettings_manager=SettingsManager(os.environ.get("DJANGO_SETTINGS_FILE","/etc/django-settings.yaml"))# Defaults for configurable itemsENABLE_REMOTE_USER_AUTH=FalseENABLE_MODEL_AUTH=False# Configure settings managersettings_manager.configure(sys.modules[__name__])# Set the module's base directoryBASE_DIR=os.path.dirname(os.path.dirname(os.path.realpath(__file__)))INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',]AUTHENTICATION_BACKENDS=['django.contrib.auth.backends.ModelBackend'ifENABLE_MODEL_AUTHelseNone,'shibboleth.backends.ShibbolethRemoteUserBackend'ifENABLE_REMOTE_USER_AUTHelseNone,]# ... other configuration ...# Rebuild AUTHENTICATION_BACKENDS to remove null valuesAUTHENTICATION_BACKENDS=[mforminAUTHENTICATION_BACKENDSifmisnotNone]settings_manager.override(sys.modules[__name__])
示例配置(YAML)文件
^{pr2}$- 项目
标签: