Django - django-dotenv 사용하기

Django 앱에 필요한 환경변수들을 설정 해 주기 위해 dotenv를 활용하는 방법을 공유합니다.

Dotenv 사용의 필요성

앱을 개발 하다 보면, DB의 비밀번호나 AWS Account 정보 등을 settings.py에 적어 두고 활용하게 됩니다.

이런 값들을 공개 될 수 있는 github 등 외부에 노출 시키는 것은 보안상 매우 좋지 않은 경우입니다.

django-dotenv는 이런 값들을 로컬 환경에 담아 두고 사용하기 편하도록 해주는 패키지 입니다.

설치 및 사용법

1. 설치

1
pip install django-dotenv

2. .env파일 생성 및 환경 변수 작성

1
2
3
4
5
6
7
8
9
10
DJANGO_SECRET_KEY = "필요한 DJANGO_SECRET_KEY 값"

DB_USER = "필요한 DB_USER 값"
DB_PASSWORD = "필요한 DB_PASSWORD 값"
DB_NAME = "필요한 DB_NAME 값"
DB_HOST = "필요한 DB_HOST 값"
DB_PORT = "필요한 DB_PORT 값"
DB_ENGINE = "필요한 DB_ENGINE 값"

...

django 프로젝트의 루트경로에 .env라는 파일을 만들어 주시고, 필요한 환경 변수를 위와 같이 설정 해 주세요

주의사항 !! git을 사용 중이시라면 .gitigonre에 반드시 .env를 추가 해 주세요.
배포 환경별로 환경변수 설정 방법이 다를 수 있습니다.
Elastic beanstalk, zappa를 활용하여 배포 하는 경우엔 환경 변수 설정 방법에 대해 공식 홈페이지를 참조 해 주세요

3. .env에 적힌 환경변수 값 가져와서 사용하기

1
2
3
4
5
import dotenv

if __name__ == "__main__":
    dotenv.read_dotenv()
    main()

로컬에서는 manage.py를 통해 앱이 실행되기 때문에, manage.py의 코드에 .env의 환경 변수들을 불러오는 위의 코드를 추가 해 줍니다.

1
2
import os 
os.environ.get("필요한 환경변수 이름")

그 뒤 환경변수 값이 필요한 곳에서 위 코드를 사용하여 값을 가져와 사용해주면 됩니다.

참고 : django-dotenv Github