🧩

005 accounts 앱 생성

 
사용자 정보를 관리할 수 있는 accounts 앱을 생성합니다. templates 폴더와 static 폴더를 생성하고, settings.py 설정을 수정합니다.
 
먼저 구름 IDE에서 터미널의 현재 디렉토리가 프로젝트 폴더와 맞는지 확인합니다. ls, cd, pwd와 같은 명령어를 활용하기 바랍니다.
notion imagenotion image
 
가상 환경으로 진입합니다.
root@goorm:/workspace/instaclone/instaclone# source venv/bin/activate
 
notion imagenotion image
진입이 되었으면 이제부터 시작입니다.
 
accounts 라는 이름의 앱을 하나 생성하겠습니다. 아래의 명령어를 입력하시면 accounts 라는 이름의 폴더가 생긴 것을 볼 수 있습니다.
(venv)root@goorm:/workspace/instaclone/instaclone# python manage.py startapp accounts
 
notion imagenotion image
 
Django에서 앱을 생성하면 반드시 settings.py에서 해당 앱을 등록해주어야 합니다. 경로는 config/settings.py 입니다.
notion imagenotion image
 
INSTALLED_APPS 부분에서 생성한 app 이름을 추가하도록 하겠습니다.
 
파일명 : config/settings.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'accounts', ]
 
먼저, config 폴더 아래 templates 라는 폴더를 생성합니다. 그리고 폴더 트리에서 config 폴더를 마우스 오른쪽 클릭한 후 새로 만들기 > 폴더 버튼을 누릅니다.
notion imagenotion image
notion imagenotion image
 
 
여기서 폴더 이름을 templates 라고 입력하고 확인 버튼을 누르면 폴더가 잘 생성된 것을 볼 수 있습니다.
notion imagenotion image
notion imagenotion image
 
config/settings.pyTEMPLATES 라는 부분을 수정할 것 입니다.
TEMPLATES는 HTML과 같은 파일들을 관리하는 부분이라고 볼 수 있습니다.
notion imagenotion image
 
DIRS에 내용을 추가해서 HTML 파일 위치를 지정하겠습니다.
 
파일명 : config/settings.py
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ BASE_DIR / 'config' / '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', ], }, }, ]
 
이러면 config/templates 폴더를 지정하게 되었고 Django는 이제 여기서 HTML 파일을 찾을 수 있습니다. 몇 가지 도움되는 설정을 더 하겠습니다. LANGUAGE_CODE'en-us' 에서 'ko-kr' 로 수정합니다. 기본 언어를 한국어로 바꾸는 것입니다.
 
파일명 : config/settings.py
LANGUAGE_CODE = 'ko-kr'
 
바로 밑에 TIME_ZONE도 수정합니다. 'UTC'에서 'Asia/Seoul'로 바꿉니다. 프로젝트의 기본 시간대를 서울로 바꾸는 것입니다.
 
파일명 : config/settings.py
TIME_ZONE = 'Asia/Seoul'
 
더 밑으로 가면 config/settings.py 맨 아래에 STATIC 관련 부분이 있습니다. STATIC에서는 JavaScript, CSS같은 파일들을 별도로 관리하는 폴더를 지정합니다.
 
먼저 static 폴더를 만들도록 하겠습니다. 폴더 트리에서 config 폴더를 마우스 오른쪽 클릭합니다. 새로 만들기> 폴더를 선택합니다. 폴더 이름을 static이라하고 확인합니다.
notion imagenotion image
notion imagenotion image
 
static 폴더 아래에 폴더 2개를 더 만듭니다.
notion imagenotion image
 
이름이 js인 폴더와 css인 폴더를 만듭니다.
notion imagenotion image
notion imagenotion image
 
그러면 이와 같이 됩니다.
notion imagenotion image
 
폴더를 잘 만드셨으면, config/settings.py 를 수정합니다. STATIC_URL 아래에 STATICFILES_DIRS 변수를 다음과 같이 추가합니다. static 폴더 위치를 정하는 것 입니다. templates 폴더 지정할 때와 유사합니다. 이제 Django는 static 관련 파일들을 해당 폴더에서 찾습니다.
 
파일명 : config/settings.py
STATICFILES_DIRS = [ BASE_DIR / 'config' / 'static', ]
 
그 다음 STATIC_ROOT 변수를 다음과 같이 추가합니다. STATIC_ROOT 서비스 배포시에 static 파일들을 모아둘 폴더를 지정하는 것입니다.
 
파일명 : config/settings.py
STATIC_ROOT = BASE_DIR / 'staticfiles'
 
이번에는 Media 파일 관련 설정을 적어보도록 하겠습니다. Media 파일이란 서버에서 기본적으로 제공하는 파일들이 아니라 유저가 업로드하는 파일들을 저장하는 곳입니다.
 
파일명 : config/settings.py
MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_ROOT는 미디어 파일들이 저장될 폴더를 지정하고, MEDIA_URL은 MEDIA_ROOT 폴더에 접근하기 위한 URL을 설정합니다.
 
로그인 관련 URL을 설정합니다.
 
파일명 : config/settings.py
LOGIN_REDIRECT_URL = '/'