我正在创建一个Python应用程序并将其托管在Heroku上。最近,我一直在与Heroku的Config Vars玩耍,以使我的秘密密钥不被撬开。因此,我将我的密钥放入了Heroku的配置变量中:
然后在我的Python代码中,我使用如下代码访问秘密变量:
print("This is my secret key: " + str(os.environ.get("secret_key")))
当托管在Heroku上时,效果很好!
>>>This is my secret key: 1234
但是我也希望能够在PyCharm中本地运行此代码。通常,我只会做类似的事情:
secret_key = sys.argv[1]
并在PyCharm的脚本参数中设置密钥。但这不会在Heroku上运行。我可以在脚本参数中添加一些东西来使其工作吗?像这样吗(尝试过,不起作用...)
还是有其他方法可以解决这个问题?
答案 0 :(得分:1)
为什么要在生产中使用不同的代码(尊重环境变量)而在本地使用不同的代码(要求将设置作为CLI参数传递)?随处使用环境变量。您可以set them in PyCharm,也可以创建一个包含环境变量的未跟踪,忽略的str
文件:
.env
并使用从此类文件中填充环境变量的工具(例如, heroku local
或pipenv run
。 secret_key=1234
流为officially endorsed by Heroku。