01. Django SECRET_KEY 분리하기
Django는 시작할때부터 SECRET_KEY
가 settings.py
파일에 무작위로 만들어서 입력해준다. 하지만 이 프로젝트를 웹사이트에 등록하게 된다면 이 SECRET_KEY
를 다른 사람들이 못 보게 해야 웹사이트의 정보들이 빼돌려지지 않고 정상적으로 돌아갈 수 있을 것이다. 따라서 SECRET_KEY
를 분리를 시켜줘야 한다.
이를 하기 위해서는 우선 가상환경에서 pip install python-decouple
을 해준다:
>>> pip install python-decouple
이후, 프로젝트의 base directory
에 .env
파일을 만들어준다.
django_instagram
├── / instagram
│ └─ / base
│ └─ .env
│ └─ db.sqlite3
│ └─ manage.py
└── / venv
그리고 그 .env
파일에 다음과 같이 SECRET_KEY
를 입력해주고 저장한다.
SECRET_KEY=vo6f*jt$t7*7ifvexe*tt)76d4th8%96m98g+k3&hvk=t=3$p0
# 이 SECRET_KEY는 이 클론코딩의 SECRET_KEY와는 전혀 무관한 값으로, 예시로 보여주기 위함이다.
여기서 중요한 점은, 모든 글자들이 붙어 있어야 한다. 즉, 공백이 존재하면 안된다는 점이다.
다음으로는 base/settings.py
파일에 가서 다음과 같이 설정해준다.
from decouple import config
SECRET_KEY = config("SECRET_KEY")
이렇게 하면 SECRET_KEY
를 따로 관리할 수도 있을 뿐더러, 깃허브에 파일들을 올릴 때 .gitignore
에 추가를 함으로써 안전하게 보호할 수 있다.
02. 폴더 경로 설정 (TEMPLATES / STATIC FOLDER / MEDIA FOLDER)
이번에는 settings.py
에서 파일 경로 설정을 해보도록 하겠다. 파일 맨 아래에 다음과 같이 추가한다:
# TEMPLATE
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
# STATIC / MEDIA
VENV_ROOT = os.path.dirname(BASE_DIR)
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / 'static']
STATIC_ROOT = os.path.join(VENV_ROOT, 'static_root')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(VENV_ROOT, 'uploaded_media')
STATIC_ROOT
과 MEDIA_ROOT
은 프로젝트 폴더의 바깥에 설정을 해줄 것이다. 또한, templates
폴더의 경우, 우리가 생성하는 app
마다 하나씩 생성해도 되지만, 그렇게 한다면 매우 불편하고 난잡해질 것이기 때문에, 아예 templates
라는 폴더를 프로젝트 폴더 경로 바로 아래에 생성해준다.
03. 언어 / 장소 설정
마지막으로 해줄 설정은, Django의 언어와 시간 설정을 바꿔주는 것이다. settings.py
에서 다음과 같이 바꿔준다.:
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
이로써 지역은 서울, 언어는 한글로 바꿀 수 있다.
기본적인 app
들에 대한 설정은, app
을 다루면서 한번에 할 수 있도록 하겠다.
'토이 프로젝트들 > Instagram 클론 코딩' 카테고리의 다른 글
<Instagram 클론 코딩> 02. 가상환경과 Django 설치 (0) | 2020.12.06 |
---|---|
<Instagram 클론 코딩> 01. 프로젝트 소개 (0) | 2020.12.04 |