- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Dynaconf (3.1.2) 来处理我的 python 应用程序设置。
如果我在 settings.toml
和 .secrets.toml
中使用相同的 key ,则这些部分最后仅包含 secret 文件中的值,而不再包含其他值从设置文件。我该如何处理这个问题?
我有以下设置:
# settings.toml
[smtp]
host = "mail.myserver.com"
port = 587
username = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1a777f5a7763697f686c7f6834797577" rel="noreferrer noopener nofollow">[email protected]</a>"
# .secrets.toml
[smtp]
password = "mysecretpassword"
当我尝试获取 settings.smtp.host 时,出现以下异常:
dynaconf.vendor.box.exceptions.BoxKeyError: "'DynaBox' object has no attribute 'HOST'"
调试时可以看到设置对象:
'SMTP': <Box: {'password': 'mysecretpassword'}>
最佳答案
您需要允许合并。 Dynaconf 将在加载文件时覆盖配置。在您的情况下, settings.toml
的内容将被 .secrets.toml
覆盖因为它是在 settings.toml
之后加载的.
为了避免这种情况,您可以启用 dynaconf_merge
.
# settings.toml
[smtp]
host = "mail.myserver.com"
port = 587
username = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aec3cbeec3d7ddcbdcd8cbdc80cdc1c3" rel="noreferrer noopener nofollow">[email protected]</a>"
# .secrets.toml
[smtp]
dynaconf_merge = true
password = "mysecretpassword"
这将合并您的smtp
来自 .secrets.toml
的对象至settings.toml
并且不会覆盖。
您还可以启用全局合并,例如
# .secrets.toml
dynaconf_merge = true
[smtp]
password = "mysecretpassword"
这将合并 .secret.toml
中的所有对象到 settings.toml
中具有相同名称的对象
引用:https://www.dynaconf.com/merging/#local-configuration-files-and-merging-to-existing-data
关于python - Dynaconf 使用 .secrets.toml 覆盖 settings.toml 中的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64368571/
我正在使用 Dynaconf (3.1.2) 来处理我的 python 应用程序设置。 如果我在 settings.toml 和 .secrets.toml 中使用相同的 key ,则这些部分最后仅包
我正在使用 Dynaconf (3.1.2) 来处理我的 python 应用程序设置。 如果我在 settings.toml 和 .secrets.toml 中使用相同的 key ,则这些部分最后仅包
我是一名优秀的程序员,十分优秀!