비밀(?) 변수 관리하기

지수 🤓·2020년 2월 20일
0

Django

목록 보기
2/2
post-thumbnail

이미지 출처 아시아경제

1. json 이용하기

secrets.json

"DJANGO_DB_NAME" : "db",
"DJANGO_DB_USERNAME" : "user",
"DJANGO_DB_PASSWORD" : "pwd",
"DJANGO_DB_HOST" : "{docker-compose db service name}",
"DJANGO_DB_PORT" : "5432"
settings.py
secret_file = os.path.join(BASE_DIR, 'secrets.json')

with open(secret_file) as f:
    secrets = json.loads(f.read())

def get_secret(setting, secrets=secrets):
    try:
        return secrets[setting]
    except KeyError:
        error_msg = "Set the {} environment variable".format(setting)
        raise ImproperlyConfigured(error_msg)

SECRET_KEY = get_secret("SECRET_KEY")

2. env 이용하기

.env

DJANGO_DB_NAME=db
DJANGO_DB_USERNAME=user
DJANGO_DB_PASSWORD=pwd
DJANGO_DB_HOST={docker-compose db service name}
DJANGO_DB_PORT=5432
settings.py
from django.core.exceptions import ImproperlyConfigured


def get_env_value(env_variable):
    try:
      	return os.environ[env_variable]
    except KeyError:
        error_msg = 'Set the {} environment variable'.format(var_name)
        raise ImproperlyConfigured(error_msg)
    
SECRET_KEY = get_env_value('SECRET_KEY')

3. 패키지로 env 설정해주기

$ pip install django-environ

env 파일은 동일 (파일 이름은 .env로 해아 함)

settings.py

import environ

env = environ.Env()
# reading .env file
environ.Env.read_env()
SECRET_KEY = env('SECRET_KEY')

출처

3가지 방법 중에서 땡기는걸루

profile
Backend Junior Developer

0개의 댓글