在settings.py中存储您需要的API访问密钥的最佳方法是什么,但是您不想将其提交到git中?
答案 0 :(得分:3)
我使用的环境文件保留在我的计算机上,并包含一些链接到我的环境的变量。
在我的Django settings.py(上传到github上):
# MANDRILL API KEY
MANDRILL_KEY = os.environ.get('DJANGO_MANDRILL_KEY')
在开发环境中,我的.env文件(从我的Git仓库中排除)包含:
DJANGO_MANDRILL_KEY=PuoSacohjjshE8-5y-0pdqs
这是"模式"由Heroku提出:https://devcenter.heroku.com/articles/config-vars
我认为有一种简单的方法可以在不使用Heroku的情况下进行设置:)
说实话,我的主要目标不是与安全相关,而是与环境分裂有关。但这对我猜两个都有帮助。
答案 1 :(得分:2)
我在settings.py
:
import json
if DEBUG:
secret_file = '/path/to/development/config.json'
else:
secret_file = '/path/to/production/config.json'
with open(secret_file) as f:
SECRETS = json.loads(f)
secret = lambda n: str(SECRETS[n])
SECRET_KEY = secret('secret_key')
DATABASES['default']['PASSWORD'] = secret('db_password')
和JSON文件:
{
"db_password": "foo",
"secret_key": "bar"
}
这样你就可以从git中省略生产配置,或者将它移到你的仓库之外。