[Django] Django .env 활용하기

Yohan_05·2023년 5월 25일
0

Django

목록 보기
1/1

개요

프로젝트 세팅을 하고 깃허브에 업로드하던 도중 settings.py 에 있는 Django secret key, DB 관련된 정보등이 깃허브에 업로드 되고 말았다. 나는 헐레벌떡 가서 커밋 흔적을 없앴고 협업을 하기에 Settings.py를 업로드를 안할 수도 없었기에 이런 일을 어떻게 방지할 수 있을까 하여 이 글을 작성한다.

.env란?

env 파일은 환경변수 파일을 의미한다. 애플리케이션이 실행될 때 넘기고 싶은 특정 값을 담고 있는 변수들이 기록되어있다.

이제 이 .env 파일을 통하여 secretkey, database 관련 정보들을 빼낼 것이다.

직접해보자.

settings.py 에서 라이브러리 세팅

우선 django-environ 이란 라이브러리를 다운받아줘야한다.
pip3 install django-environ

를 다운 받은 후 settings.py 에 import 를 해준다.

from import environ
import os # os 도 같이 활용되니 이 친구도 같이 Impor 해주자

아래의 코드는 .env 를 settings.py 에서 읽을 수 있도록 하는 코드이다. 이 코드를 settigns.py 상단에 적용시켜준다.

# BASE_DIR은 기본적으로 선언되어있는 변수이다.
BASE_DIR = Path(__file__).resolve().parent.parent

env = environ.Env(DEBUG=(bool, True))

environ.Env_read_env(
	env_file = os.path.join(BASE_DIR, '.env')
)

.env 생성

.env 파일을 만들어 아래와 같이 선언해준다. 이때 .env 는 프로젝트 최상위 루트에 위치해야하며 (manage.py 와 같은 경로) 변수명과 = value 사이에 공백이 없도록한다.

SECRET_KEY='djfkladsjflkajdsklfjlkadjfl;ajfl;adjfjs'

.env 적용

위의 단계들을 다 수행했다면 SECRET_KEY=env('SECRET_KEY') 이런식으로 기존 SECRET_KEY 를 대체해준다.

이후 저장하고 python3 manage.py runserver 로 실행한다면 오류 없이 잘 실행될 것이다.

(실행이 안된다면 .env의 경로 문제나 오타다!)

profile
안녕하세요 DevOps 엔지니어로 현업에서 활동중인 요한이라고 합니다.

0개의 댓글