python - 如何在 Pyramid 中使用通用的 ini 配置(在开发和生产之间)?

标签 python configuration pyramid

我想要一个通用配置,其设置不会在不同环境(开发和生产)中发生变化。我知道我可以设置一个全局 settings.py 文件(例如,sql 限制),但据我所知, Pyramid 需要在启动时在 ini 文件中找到某些设置(例如,模板目录路径)。

我可以吗?如果可以,我该如何在 Pyramid 中做到这一点?

最佳答案

在不超出 PasteDeploy 的 INI 限制的情况下,有几个可能的选项。然而,首先要意识到 INI 文件模型的美妙之处在于它具有创建具有不同设置/配置的多个文件的潜在能力。是的,您必须使它们保持同步,但它们只是设置(没有逻辑),因此应该不是无法克服的。

无论如何,PasteDeploy supports a default section[app:XXX] 部分继承。所以你可以在那里放置通用设置,并有不同的 [app:myapp-dev][app:myapp-prod] 部分。

# settings.ini

[DEFAULT]
foo = bar

[app:myapp-dev]
use = egg:myapp

[app:myapp-prod]
use = egg:myapp

set foo = baz

这可以通过

运行
env/bin/pserve -n myapp-dev settings.ini

另一种选择是使用多个配置文件。

# myapp.ini

[app:myapp-section]
use = egg:myapp

foo = bar

# myapp-dev.ini

[app:main]
use = config:myapp.ini#myapp-section

foo = baz

# myapp-prod.ini

[app:main]
use = config:myapp.ini#myapp-section

这可以通过

运行
env/bin/pserve myapp-prod.ini

如果您不想使用 PasteDeploy(ini 文件),您可以在 Python 中做一些事情,但这种配置的简单性确实有好处。

关于python - 如何在 Pyramid 中使用通用的 ini 配置(在开发和生产之间)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089479/

相关文章:

python - Pandas to_csv 逗号被替换为

python - 根据条件从数组中选择元素

python - 如何在 Python 中制作 alt+number 全局热键?

configuration - Yarn可以动态分配资源给Flink吗?

python - mustache 不在 Pyramid 中渲染

python - 从 c 共享库访问 python ctypes 结构

python - 如何在 Visual Studio Code 中设置 Python 语言特定的制表符间距?

python - Pyramid/Pylons 中的后处理请求事件

python - 粘贴配置中的基本路径

ssl - Nginx 反向代理到 Heroku 的 SSL 握手失败