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如何从通知中获取图像?   java按住按钮将循环一个动作,直到它被释放   JavaJavassist:如何将动态生成的类添加到特定的包中?   java我需要获取一个字符串并输出字符串中出现最多的单词   java合并排序堆栈溢出错误   java如何使用spring boot配置hibernate   Android中带选择器的Java TCP服务器NIO   java对于长度急剧变化的输入,什么是最佳的StringBuffer初始容量?   java SpringBoot:REST endpint中@RequestParam参数的自定义验证   JavaJPaQuery。fetchResults()已弃用,应如何替换它?   JavaJNA结构创建带来麻烦   java创建只包含响应中某些元素的POJO   java巨大的Perm Gen与应用程序大小相比,是否正常?   JavalibgdxMoveToAction。将setPosition()设置为负坐标,以将演员移出舞台