MTV
- 장고는 MTV 기반의 프레임워크..
- 장고에서는 View를 템플릿, Controller를 View라고 부름
- 용어만 다를 뿐 MVC랑 개념은 동일
Model
- 각 app의 Model.py
- 데이터베이스에 저장되어있는 데이터를 가지고 오거나 수정 등등
- ORM 기법임(객체를 사용해 디비 관리)
- 하나의 모델 클래스는 하나의 테이블에 매핑
- 모델 클래스의 속성은 테이블의 컬럼에 매핑
- 아무튼 이렇게 ORM 기법으로 매핑하면 앱에서는 SQL 없이도 클래스를 다룰 수 있어서 편리. 그리고 DB 엔진 변경 쉽게 할 수 있음.
- 테이블 및 컬럼을 자동으로 생성하기 위해서 많은 규칙을 가지고 있는데 공식 문서에서 확인 가능
Template
- templates 폴더 안에 위치
- 사용자에게 보여지는 부분
- settings.py 파일의 templates에서 경로 지정 가능
View
- 각 app의 view.py.
- 실질적으로 프로그램 로직이 동작하여 데이터를 가져오고 적절하게 처리한 결과를 전달
- 버튼을 눌렀을 때 어떤 함수를 호출하여 데이터를 어떻게 가공할 것인지…
- 클라이언트로부터 요청을 바등면 URLconf 모듈을 이용해서 URL 분석
- URL 분석 결과를 통해 URL을 처리할 뷰 결정
- 뷰는 로직 실행하면서 디비 처리가 필요할 경우 모델을 통해 요청하고 그 값을 반환받음
- 뷰는 로직 처리가 끝나면 템플릿을 사용하여 HTML 파일 생성
- 뷰는 최종 결과로 HTML 파일을 클라이언트한테 보내 응답