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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在金字塔ini文件中使用系统环境变量?相关的知识,希望对你有一定的参考价值。

我导出了一个名为DBURL='postgresql://string'and的变量我想在我的配置ini文件中使用它,例如::

[app:kotti]
sqlalchemy.url = %(DBURL)s

那不行。

答案

把它放在你的__init__.py

def expandvars_dict(settings):
    """Expands all environment variables in a settings dictionary."""
    return dict((key, os.path.expandvars(value)) for
                key, value in settings.items())

然后,当您将环境变量导出到shell时,正确的语法是:

sqlalchemy.url = ${DBURL}

一旦你在.ini中设置了环境变量,那么你可以使用configparser语法:

sqlalchemy.connection = %(sqlalchemy.url)s%(user:pass and other stuff)s

https://stackoverflow.com/a/16446566/2214933偷来的想法

另一答案

PasteDeploy(ini格式金字塔在这里使用)不支持直接从环境变量读取。一些常见的选择是:

1)在main中自己设置该选项。

import os

def main(global_config, **settings):
    settings['sqlalchemy.url'] = os.environ['DBURL']
    config = Configurator(settings=settings)
    ...

2)将您的ini文件定义为jinja2模板,并命令将其呈现为ini格式,并将其作为部署过程的一部分运行。

以上是关于如何在金字塔ini文件中使用系统环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取金字塔中的 ini 数据?

如何在配置文件中定义的 PowerShell 脚本中设置环境变量?

如何快速在WINDOWS系统上配置PHP网站环境

.ini 文件加载环境变量

npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段

如何在PHP中设置和使用PHP_INI_SCAN_DIR环境变量? [重复]