如何在金字塔中使用通用的 ini 配置(在开发和生产之间)?

Posted

技术标签:

【中文标题】如何在金字塔中使用通用的 ini 配置(在开发和生产之间)?【英文标题】:How to use a common ini configuration (between development and production) in pyramid? 【发布时间】:2012-06-20 19:32:31 【问题描述】:

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

我可以吗,如果可以,我将如何在金字塔中做到这一点?

【问题讨论】:

【参考方案1】:

在不超出 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 中做一些事情,但这种简单的配置确实有好处。

【讨论】:

以上是关于如何在金字塔中使用通用的 ini 配置(在开发和生产之间)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在金字塔ini文件中使用系统环境变量?

.NET Core 3.0 之初识Host源码

在树枝中使用逃生和生?

如何在 nodejs 中侦听和生成多个子进程

Php7中如何获取ini配置?

自动化框架——PO设计模式自学——参数化配置——ini配置文件——全面