
1. MTV 패턴 & Django
- MTV 패턴은 Model, Template, View의 약어.
- Model은 앱의 데이터 관련부
- Template은 사용자에게 보이는부
- View는 중간에서 Model의 데이터 Template로 전달 Template에서 발생하는 이벤트를 처리하는부

2. Model
- 앱의 데이터와 관련된 부분을 다루는 영역
- 데이터베이스 저장 데이터 모양 정의 및 일부 기능 설정 영역
- 개체의 특징을 뽑아 이를 구성 요소로 하느 것을 모델링이라 칭함
- 모델링을 통해 나온 결과물을 모델이라 함
-
- 데이터 베이스 테이블과 같은 구조
- 모델 형태의 데이터가 쌓이며 데이터베이스 테이블이 된다
- 해당 모델을 데이터베이스에 적용시키는 과정을 **마이그레이션(Migration)**이라 칭함
- Django 가지고 있는 기본 모델 데이터베이스에 적용시키지 않았을 때 Migration 에러 발생ex. Model
ID NAME PW EMAIL AGE SEX horang 호랑이 1234 horang@test.com 27 male yaong 야옹이 1234 yaong@test.com 29 male
-
3. View
- Django의 View는 Template 과 Model 사이를 이어주는 중간 다리 역할
- 단편적 역할
- View는 Model을 통해 데이터에 접근하여 템플릿으로 부터 요청받은 데이터를 뽑아와 Template에게 답변을 송신
- 즉, Front-end가 Back-end에게 데이터를 요청했을 때 Back-end에서 데이터를 뽑아 Front-end에게 제공하는 과정을 View가 처리
- Django에서 가장 큰 비중을 차지하는것이 Model이라면 코드에서는 View가 가장 큰 비중을 차지
-
- Function View ( 난이도가 쉬운편 )
- Class View ( DRF 과정에서 부연 설명 )View는 만드는 방법이 다양하게 존재
3-1. URL
- URL이란 웹 브라우저에서 특정 웹 사이트로 이동하기위해 사용되는 도구
- URL은 라우팅의 역할과 동시에 서버로 해당 주소에 할당된 리소스를 요청하는 역할
- 리소스는 Client가 웹 브라우저로 보는 HTML 페이지뿐만 아니라 내부를 채우는 데이터 등을 포함
4. Template
- Django에서 템플릿은 사용자에게 보이는 부분
- 웹 페이지의 골격, HTML로 작성된 부분
4-1. Django document - Template
- 템플릿에는 HTML 출력의 정적 부분과 동적 콘텐츠가 삽입되는 방법을 설명하는 특수 구문 포함
- Django 프로젝트의 템플릿은 여러 엔진으로 구성 가능, 또는 아예 사용하지 않을 수 있다
- Django 1.8 Version 까지는 사용 가능한 유일한 내장 옵션이었다
- DTL은 독단적인 템플릿 라이브러리이지만, 다른 백엔드를 선택할 이유가 없다면 DTL 사용 권장
- 플러그형 애플리케이션을 작성중이거나 템플릿을 배포하려는 경우 더욱 권장
- 다음의 내용을 포함하는 Django의 contrib 앱은 DTL 사용 필수 ⇒ 참조문서
- 템플릿 엔진에 대한 일반 지원과 Django 템플릿 언어의 구현은 모두 django.template에 위치
5. Django의 특징
- 일반적 HTML 구문과 99% 일치한다
- 데이터 처리 및 Python 코드 작성이 가능한 Template Tag가 존재한다 ⇒ for, if 등 기본적 구문
- Template Tag 는 다음과 같이 표현한다 ⇒ {}