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

时间:2018-05-08 20:12:34

标签: postgresql sqlalchemy pyramid ini kotti

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

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

那不起作用。

2 个答案:

答案 0 :(得分:2)

将其放入__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

的想法被盗

答案 1 :(得分:1)

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

1)在BorderPane

中自行设置该选项
main

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