gpt4 book ai didi

python - 我如何在 Pyramid 的 .ini 文件上使用环境变量?

转载 作者:行者123 更新时间:2023-11-28 22:18:27 28 4
gpt4 key购买 nike

例如,现在我有这个 .ini 文件:

[DEFAULT]
db_user = user_test
db_password = psw_test
db_host = localhost
db_name = db_test

...

我想做的事:

export ENV_DB_USER=user_test
export ENV_DB_PSW=psw_test
export ENV_DB_HOST=localhost
export ENV_DB_NAME=db_test

然后我想在 .ini 文件中做这样的事情:

[DEFAULT]
db_user = ${ENV_DB_USER}
db_password = ${ENV_DB_PSW}
db_host = ${ENV_DB_HOST}
db_name = ${ENV_DB_NAME}

...

我曾尝试使用 %()s 语法,但不幸的是没有用。我哪里做错了?

谢谢:)

最佳答案

不幸的是,它们现在不受支持——您必须在运行时加载它们,而不是在 ini 文件本身中加载它们。我的应用程序中的一种常见方法是定义一个 render-config 脚本,该脚本采用 site.ini.in 模板并将其呈现到 site.ini 使用 jinja2 和可用的环境变量。它不是很令人满意,但确实运行良好。

import jinja2
import os

def multiline(val):
lines = (l.strip() for l in val.strip().split('\n'))
return '\n ' + '\n '.join(lines)

def main(cli, args):
env = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.getcwd()),
undefined=jinja2.StrictUndefined,
)
env.filters['multiline'] = multiline

template = env.get_template(args.template)
result = template.render({
'env': os.environ,
})

with open(args.config_file, 'w', encoding='utf8') as fp:
fp.write(result)

关于python - 我如何在 Pyramid 的 .ini 文件上使用环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50532544/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com