[Django] .env(dotenv)파일 기초 사용법 (feat. naver smtp 메일 보내기)

반응형

django Logo

 

 
Contents

    1. 배경

    django를 사용하다 보면, API Key나 이메일 보내기 기능의 ID, Password 등의 정보를 시스템적으로 사용할 때가 있습니다. 보통 코드를 깃으로 관리하기 때문에 이런 중요정보가 코드 내부에 있으면 해킹당할 위험이 매우 높습니다. 그래서 django에서는 .env 파일을 이용해 이런 중요 정보를 환경 변수로 사용함으로써 보안을 유지합니다. 설치부터 기초 사용법까지 알아보겠습니다.

    2. 해결

    위 과정을 naver smtp 메일 보내는 기능을 추가하는 예시와 함께 알아보겠습니다.

     

    1) 설치

    python -m pip install django-environ

    설치

     

    2) .env 파일 작성

    주요 정보는 빨간색으로 가렸습니다. 참고로 .env파일은 깃허브에 올라가지 않도록, .gitignore에 추가해줘야 합니다.

    .env 작성

     

    3) settings.py에서 불러오기

    from environ import Env
    
    env = Env()
    env_path = BASE_DIR / ".env"
    if env_path.exists():
        with env_path.open("rt", encoding="utf8") as f:
            env.read_env(f, overwrite=True)

    * 코드 설명

    env에 Env() 객체를 만들고 BASE_DIR / ".env"를 이용해 path 객체를 생성합니다. 장고의 Path 객체는 바로 / 와 문자열을 같이 쓰는 걸 지원해 줘서 이렇게 쓸 수 있습니다. 그리고 env_path가 존재하면 즉, .env 파일이 존재하면 "rt" read text 모드로 읽고, encoding은 utf8로 읽겠다는 뜻입니다. overwrite=True 옵션은 이미 메모리에 로딩된 환경변수가 있어도, 새롭게 들어온 환경변수 내역으로 모두 덮어쓰겠다는 뜻입니다.

    settings에서 .env 읽어오기

     

     

     

     

    Reference
    1. django Logo: https://codecondo.com/jobs-for-django-developers/django-framework-logo/
    반응형

    댓글

    Designed by JB FACTORY