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}$

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Java将JSON转换为哈希映射   java如何通过使用MapStruct从源对象复制值来填充目标对象内部的映射?   注入泛型类型为@InjectGuice的类时发生java错误   字符串如何在JavaIDE中导入基本符号   在Java中将JSON转换为List<List<String>>   java Java9 HttpClient SSLHandshakeException   java jOOQ代码生成器   java如何调整图标(图像按钮),使其不会放大?   java我可以在使用Eclipse时安装2个或更多Android SDK吗   sqlite Java实现DAO   如何解决此错误?“java.lang.NoSuchFieldError:org.apache.http.conn.ssl.SSLConnectionSocketFactory上的实例。<clinit>。”   java Maven:将基于OSP的zip文件解压缩到WEBINF/lib   java如何在每次调用函数时获取当前gps位置?