我正在尝试向 Heroku 部署一个复杂的破折号应用程序,但我有需要隐藏的 API 密钥。我似乎无法部署它。当我使用像下面这样的子进程库来制作拉取环境变量的方法时,它在本地工作。但是,当我尝试在线访问该应用程序时,日志会为我从中提取的 API 提供未经授权的 401 错误。
from subprocess import run, PIPE
def out(command):
result = run(command, stdout=PIPE, stderr=PIPE, shell=True)
return result.stdout
key = out('heroku config:get key')
有没有更好的方法来做到这一点?谢谢!
答案 0 :(得分:0)
只需在顶部导入 os
并使用 os.environ["key"]
获取 API 密钥(将 key
替换为您调用的环境变量)。
答案 1 :(得分:0)
为了补充 Seth 的答案,我的 settings.py 的顶部如下所示:
import environ
import os
env = environ.Env(
DEBUG=(bool, False)
)
READ_DOT_ENV_FILE = env.bool('READ_DOT_ENV_FILE', default=False)
if READ_DOT_ENV_FILE:
environ.Env.read_env()
DEBUG = env('DEBUG')
SECRET_KEY = env('SECRET_KEY')
在 Heroku->settings->config vars
中它看起来像
this