1. MTV Pattern
Model
- 응용 프로그램의 데이터 구조를 정의, DB의 기록을 관리(추가, 수정, 삭제)
Template
- 파일의 구조나 레이아웃 정의
- 실제 내용을 보여주는데 사용
View
- HTTP 요청을 수신, HTTP 응답 반환
- Model을 통해 요청을 충족시키는데 필요한 데이터에 접근
- template에게 응답의 서식 설정 맡김
이 표를 이해해야 django가 어떻게 돌아가는지 알수 있다!
2. 프로젝트 구조
init.py
- Python에게 이 디렉토리를 하나의 Python 패키지로 다루도록 지시
asgi.py
- Asynchronous Server Gateway Interface
- django 애플리케이션이 비동기식 웹 서버와 연결, 소통 하는것 도움
settings.py
urls.py
wsgi.py
- Web Server Gateway Interface
- django 애플리케이션이 웹서버와 연결, 소통하는것 도움
manage.py
- django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인 유틸리티
3. Project & Application
Project
- Application들의 집합
- 프로젝트에는 여러 앱이 포함될 수 있다.
- 앱은 여러 프로젝트에 있을 수 있다.
Application
- 앱은 실제 요청을 처리하고 페이지를 보여주는 등의 역할 담당
- 하나의 프로젝트는 여러 앱 가짐
- 일반적으로 앱은 하나의 역할 및 기능 단위로 작성
Application 파일 구조
1. urls.py
- HTTP request를 알맞은 view로 전달
2. views.py
- HTTP 요청을 수신하고 응답을 반환하는 함수 작성.
- Model 을 통해 요청에 맞는 필요 데이터에 접근
- Template에게 HTTP 응답 서식 맡김
3. Templates
- 실제 내용을 보여주는데 사용
- 파일의 구조나 레이아웃 정의
- Template 파일 경로의 기본 값은 app 폴더 안의 templates 폴더로 지정 되있음.