django-environ
대게 django을 하다보면, 남들에게 보여주면 안되는 API_KEY 값들이나 다른 중요한 값들이 존재하기 마련이다. 따라서 이런 값들을 따로 관리해야하는 필요성을 알게되는데 이를 도와주는것이 djago-environ이다.
일단 django-envirion을 설치한다.
pip install django-environ
그 다음 프로젝트 안에 .env 라는 파일을 생성 한 뒤, 파일안에 변수와 값을 기입한뒤, settings.py 에서 사용한다.
📕 .env
SECRET_KEY='django-insecure-n&(433#pnjvih&mmil99u666&5cm*d0_o$@*cj41934u=$w7*q'
DEBUG=True
🔖.env 파일에 값을 넣을때 변수와 값 사이에 뛰어쓰기가 존재할 시 에러가 발생한다.
# correct
Key=Value
# incorrect
Key= Value
📕 settings.py
from pathlib import Path
import os
import environ
BASE_DIR = Path(__file__).resolve().parent.parent.parent
"""
환경 변수를 불러올 수 있는 상태로 만든다.
"""
env = environ.Env(DEBUG=(bool, True))
"""
환경 변수를 불러올 .env 파일의 경로를 설정한다. 나 같은 경우에는 프로젝트 바깥에 설정해두었기
때문에, 이를 고려하여 BASE_DIR 경로에다가 .parent을 붙여 경로를 설정하였다.
"""
environ.Env.read_env(
env_file=os.path.join(BASE_DIR.parent, '.env')
)
"""
각 환경 변수에 있는 변수를 기입한다.
"""
SECRET_KEY = env('SECRET_KEY')
DEBUG = env('DEBUG')
우리가 이런 환경 변수를 쓰는 이유는 남에게 보이지 않기 위함인데, 그 값이 github에 올라가게 되면 안되기 때문에 gitignore에 추가 해야 한다.
📕 .gitignore
.env
해당 부분처럼 처리를 하게 된다면, 성공적으로 환경변수를 관리하여 django 프레임워크를 사용 할 수 있을 것이다.
'FrameWork > Django' 카테고리의 다른 글
DRF에서 ModelViewset을 이용하여 API을 작성할 때, 쿼리 스트링 사용 방법 (0) | 2023.08.18 |
---|---|
[Django] User Model 확장하기 (0) | 2023.04.10 |
ValueError: The field admin.LogEntry.user was declared with a lazy reference to 'accounts.account', but app 'accounts' doesn't provide model ' 에러 해결 (0) | 2023.04.04 |
django-debug-toolbar을 통한 SQL 디버깅 정보 확인하기 (0) | 2023.03.17 |
mark_safe을 통해 Admin 페이지에서 이미지를 표현하는 방법 (0) | 2023.03.05 |