Python/Django

[Django] Django-dotenv

S0PH1A 2019. 12. 30. 15:30
반응형

django-dotenv


프로젝트폴더에 .env 라는 파일을 만든 후 파일 안에 수 많은 variable(변수)들을 정의한 후
사용중인 프로세스 즉, 코드에서 .env 파일로부터 변수를 읽어 사용할 수 있다.


이렇게 하면 보호가 필요한 데이터베이스나 메일서버 아이디/비밀번호 등을 환경변수(enviroment)에 정의해 두기 git 같은 곳에 공개되지 않도록 숨길 수 있게 된다.


👉 https://github.com/jpadilla/django-dotenv


👉 django-dotenv 설치

$ pip install django-dotenv

👉 django-dotenv 사용
  1. 프로젝트 폴더 내에 .env 파일 생성 후 보호가 필요한 변수 정의
  • 예) mysql 데이터베이스 계정 정보 저장
    MYSQL_USERNAME = "아이디"
    MYSQL_PASSWORD = "비밀번호"
  1. manage.py 수정
  • dotenv 추가
  • main() 함수 call 하기 전에 dotenv를 읽을 수 있도록 선언
    #!/usr/bin/env python
    import os
    import sys
    import dotenv
    if __name__ == "__main__":
      dotenv.read_dotenv()
      # ... 생략 ...
  1. .env 정보 사용
  • os.environ.get("변수") 형태로 사용한다.
  • 예) settings.py 에 mysql 계정 정보 사용
    DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.mysql',
          'NAME': '데이터베이스명', 
          'USER': os.environ.get("MYSQL_USERNAME"),
          'PASSWORD': os.environ.get("MYSQL_PASSWORD"),
          'HOST': '데이테베이스 IP 주소', 
          'PORT': '데이터베이스 포트',
      }
    }
반응형