Django 포스팅
Doyeon0430 | 2023년 06월 01일
이번시간에는 깃허브에 업로드 할 때 settings.py에 데이터베이스 코드와
SECRET_KEY를 숨길수 있도록 .env를 설치하겠습니다.
이 설정을 안해놓으시면 웹페이지 보안이 깃허브에 유출돼서 해킹당하실 수 있습니다.
그럼 .env과 .gitignore를 추가하고 설정하는 법을 알려드리겠습니다.
Django에서 제공하는 .env 패키지로 명령어 창에서 쉽게 다운받을 수 있습니다.
1. cmd
pip install django-environ
2. settings.py
import os, environ
env = environ.Env()
environ.Env.read_env()
SECRET_KEY = env('SECRET_KEY')
Django에서는 SECRET_KEY를 숨기는 걸 권장하고 있습니다.
실제 몇몇 커뮤니티를 봤을 때 숨기는 사례가 많습니다.
3. settings.py
import os, environ
env = environ.Env()
environ.Env.read_env()
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': env("DB_NAME"),
'USER': env("DB_USER"),
'PASSWORD': env("DB_PASSWORD"),
'HOST': env("DB_HOST"),
'PORT': env("DB_PORT"),
}
}
숨기고싶은 데이터베이스 정보들을 env("이름")으로 묶어주세요.
4. .env 파일 생성
SECRET_KEY= #해당 값을 입력
DB_NAME= #해당 값을 입력
DB_USER= #해당 값을 입력
DB_PASSWORD= #해당 값을 입력
DB_HOST= #해당 값을 입력
DB_PORT= #해당 값을 입력
파일을 새로 생성하고 데이터베이스 설정에 맞게 입력할 수 있습니다.
5. 경로 위치
myproject/
manage.py
myproject/
.env
settings.py
urls.py
...
myapp/
models.py
views.py
...
경로는 settings.py와 .env가 같은 위치에 있어야 적용됩니다.
이렇게 Django에서 .env 패키지 설치를 해보며 settings.py까지 설정해봤습니다.
다음으로 .gitignore로 가서 파일을 추가하겠습니다.
gitignore는 깃허브에 파일을 업로드할 때 제외시킬 수 있는 도구입니다.
저는 media나 cache같이 수시로 바뀌는 값들을 넣어줬습니다.
1. .gitignore 파일 생성
.env
media
내부 파일에 .env를 입력하시면 됩니다.
2. 경로 위치
myproject/
.gitignore
manage.py
myproject/
.env
settings.py
urls.py
...
myapp/
models.py
views.py
...
.gitignore는 git 파일과 같은 위치인 최상단 디렉토리에 있어야 적용됩니다.
Django 기준으로 프로젝트 바로 밑이에요.
.gitignore에 .env파일을 추가하니 깃허브에 업로드 안된 것을 확인할 수 있습니다.
마지막으로 git pull을 하는 서버로 가서 방금 입력하셨던 .env을 파일을 추가하면 정상적으로 홈페이지가 작동됩니다.
글을 마치며 .env로 데이터베이스 값과 SECRET_KEY를 숨기고 해킹으로부터 지키는 방법에 대해 알아보았습니다.
댓글 (0)
간편 댓글 작성