1. 가상 환경 설정 및 패키지 설치
처음에는 장고를 시작하듯이 가상환경부터 만들어주고 시작하면 된다.
#가상환경 생성
python3 -m venv 가상환경이름
#가상환경 활성화
source 가상환경이름/bin/activate
#비활성화
deactivate
brew install python (homebrew install 한 후 사용 가능)
pip install django

2. 프로젝트와 앱 만들기
아래는 각각 프로젝트와 앱 만드는 명령어이다.
-프로젝트 생성 (goatfarm)-
#해당 명령어를 치면 아래와 같이 Prjoect 폴더와 manage.py가 생성됨
django-admin startproject {project_name} {location}

-프로젝트의 앱 생성 (project)-
#해당 명령어를 입력하면 아래와 같이 project 하위 폴더가 생성됨
python manage.py startapp <app_name>

다음과 같이 프로젝트와 앱을 만들어 준 후, setting.py에 다음과같이 앱이름과 drf를 추가해주면 된다.
#settings.py
INSTALLED_APPS = [
'project', #생성된 앱 이름
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
출처: https://yoondii.tistory.com/107 [개랄발랄:티스토리]

또 아래와 같이 setting.py의 마지막 쪽 internationalization 기본 설정을 해준다.
언어, 시간, 디버깅 등을 설정할 수 있는 부분이다.

4. migration
마이그레이션까지 하고 서버를 실행해주면 끝!
pip install -r requirements.txt
python3 manage.py makemigrations && python manage.py migrate
python3 manage.py runserver #서버 돌리기

5. django rest-framework 추가하기
DRF(django rest framework) 패키지를 설치한 후 setting.py에 rest_framework 앱을 추가한다.
pip install djangorestframework
이 때 AppConfig.ready()의 순서 등에 영향을 미치기 때문에 선후관계를 따져서 적절한 위치인 django enl, 내 앱 앞에 넣어준다.
#settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', #drf
'project', #생성된 앱 이름
]

잘 설치되었는 지 확인하기 위해 DRF에서 편의를 위해 제공하는 기본 로그인/로그아웃 뷰를 활용해보자.
rest_framework.urls에 들어가보면 아래와 같이 login, logout에 뷰가 지정되어 있는 것을 볼 수 있다.
아래와 같이 추가 후, http://localhost:8000/api-auth/login/에 접속하면 로그인 창이 반겨준다.

물론 지금은 유저가 없는 상태라 로그인 할 수는없다.
6. DB migration
지금까지는 db/model과 전혀 무관했지만, 유저를 생성하기 위해선 유저를 저장할 db가 필요하다.
django는 setting.py에서 보셨든 맨처음 프로젝트 생성시 sqlite를 기본 db로 사용하고,
프로젝트 루트 폴더에 db.sqlite3파일을 생성한다. 뒤에서 RDB로 교체하기로 하고,
지금은 그대로 migration 돌린 후 유저를 생성해보자
python3 manage.py migrate
python3 manage.py createsuperuser

이렇게 생성한 유저는 auth_user 테이블에 저장되며 곧바로 위에 추가했던 로그인 페이지에서 이용해볼 수 있다.
그럼 다음과 같이 로그인은 성공하지만, redirect 페이지가 준비되어있지 않아서 404 화면이 뜬다.

'Django' 카테고리의 다른 글
| JSDoc 사용해 JavaScript 파일 문서화하기 (+Github Pages 배포) (0) | 2024.09.03 |
|---|---|
| PostgreSQL 설치와 장고와 연동하기 (1) | 2024.07.08 |
| (11) 내비게이션 바 (0) | 2024.07.05 |
| (10) 폼 (1) | 2024.07.02 |
| (9) 템플릿 상속 (0) | 2024.07.02 |