我导出了一个名为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
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格式,并将其作为部署过程的一部分运行。