Django 使用JSON文件隐藏秘密数据
示例
当使用诸如Git或SVN的VCS时,某些机密数据绝不能进行版本控制(无论存储库是公共的还是私有的)。
在这些数据中,您可以找到SECRET_KEY设置和数据库密码。
从版本控制中隐藏这些设置的一种常见做法是secrets.json在项目的根目录下创建一个文件(这个想法要感谢“Django的两个勺子”):
{
"SECRET_KEY": "N4HE:AMk:.Ader5354DR453TH8SHTQr",
"DB_PASSWORD": "v3ry53cr3t"
}并将其添加到您的忽略列表(.gitignore对于git):
*.py[co] *.sw[po] *~ /secrets.json
然后将以下功能添加到您的settings模块中:
import json
import os
from django.core.exceptions import ImproperlyConfigured
with open(os.path.join(BASE_DIR, 'secrets.json')) as secrets_file:
secrets = json.load(secrets_file)
def get_secret(setting, secrets=secrets):
"""Get secret setting or fail with ImproperlyConfigured"""
try:
return secrets[setting]
except KeyError:
raise ImproperlyConfigured("Set the {} setting".format(setting))然后以这种方式填写设置:
SECRET_KEY = get_secret('SECRET_KEY')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgres',
'NAME': 'db_name',
'USER': 'username',
'PASSWORD': get_secret('DB_PASSWORD'),
},
}鸣谢:Daniel的两个独家报道:Django1.8的最佳实践,作者DanielRoyGreenfeld和AudreyRoyGreenfeld。版权所有2015TwoScoopsPress(ISBN978-0981467344)
热门推荐
10 店家搬家祝福语大全简短
11 同事有趣祝福语大全简短
12 六一互换礼物祝福语简短
13 口才课期末祝福语简短
14 女神结婚快乐祝福语简短
15 祝福语签名简短大全女生
16 六十岁大寿祝福语简短
17 高考前祝福语简短字句
18 玫瑰礼盒祝福语大全简短