1. 장고 프로젝트 생성 및 rest api 시작
📌 학습한 것 : 장고 프로젝트 및 앱 생성 방법
Django 기본 익히기
※ DRF 공부에 앞서, Django를 빠르게 복습해 보자!
- Django 프로젝트 시작하기
- 1) 가상환경 설정하기 : -m venv myvenv → source myvenv/Scripts/activate
- 2) Django 설치하기 : pip install django
- 3) 프로젝트 생성하기 : django-admin startproject 프로젝트명
- 4) 앱 생성하기 : python manage.py startapp 앱명 (※ settings.py에 등록)
- Django MTV 패턴
- Model : 앱의 데이터와 관련된 부분을 다룸
- Template : 사용자에게 보이는 부분을 다룸
- View : Model의 데이터를 Template으로 전달하고 Template에서 발생하는 이벤트를 처리하는 부분을 다룸
- Django Model
- 기능 : 데이터베이스에 저장될 데이터의 모양을 정의, 관련된 일부 기능을 설정
- 모델을 데이터베이스에 적용시키면 데이터베이스의 테이블이 됨
- 필드 설정 : CharField, IntegerField, TextField, DataField, DateTimeField, FileField, ImageRield, ForeignKey, OnetoOneField, ManyToManyField
- (수정된) 모델 적용 : python manage.py makemigrations → migrate
- 모델 어드민 페이지 적용 : admin.py 안에 admin.site.register(클래스명)
-
Django Template
- 기능 : 웹 페이지의 골격, HTML로 작성된 부분
- 장고의 장점 : 템플릿 태그 { } - html상에서 파이썬 코드 데이터를 사용하는 것
-
Django View
- 기능 : 장고의 뷰는 템플릿과 모델 사이를 이어줌(프론트엔드와 백엔드 사이의 데이터를 처리함)
- 함수형 뷰 / 클래스형 뷰
📌 잘모르겠는 것들
- 함수형 뷰 / 클래스형 뷰 둘의 차이점?
✍ 해결을 위해 찾아본것
- 함수형 뷰
- 장점 : 간단한 구현, 읽기 쉬움, 명시적 코드 흐름, 데코레이터의 간단한 사용법
- 단점 : 코드 확장 및 재사용이 어려움, 조건부 분기를 통한 HTTP 메소드 처리
- 클래스형 뷰
- 장점 : 쉽게 확장하고 재사용할 수 있는 코드, 다중상속과 같은 기술 사용 가능, 별도의 클래스 메소드로 HTTP 메소드 처리, 내장된 일반 클래스 기반 뷰
- 단점 : 읽기 어려움, 암시적 코드 흐름, 부모 클래스의 숨겨진 코드, 믹스 인, 뷰 데코레이터 사용하려면 추가 가져오기 또는 메소드 재정의 필요

📖 학습 가이드라인
1. 장고 프로젝트 생성 및 rest api 시작
(Django 기본 점검하기)
-
장고 first_proj 프로젝트를 생성해서 student 앱을 만들어 보자!
▶ 장고 패키지 설치 - 프로젝트 생성 - 앱 생성 - settings.py에 앱 등록하기
-
장고 MTV 패턴의 동작 방식을 설명하라.
▶ Model - 앱의 데이터 관련 부분 / Template - 사용자에게 보이는 부분 / View - Model의 데이터를 Template으로 전달하고, Template에서 발생하는 이벤트를 처리하는 부분
▶ MTV 간 동작하는 흐름 그림으로 표현
-
models.py에서 수정한 모델을 데이터베이스에 반영하는 명령어는?
▶ python manage.py makemigrations -> python manage.py migrate
-
이름, 학번, 전화번호를 필드로 갖는 '학생' 모델을 Studnet라는 클래스로 정의하라.
▶ (코드로)