1)클라이언트로부터 요청을 받으면 URLconf를 이용하여 URL을 분석
2) URL 분석 결과를 통해 해당 URL에 대한 처리를 담당할 view를 결정
3) view는 자신의 로직을 실행하면서, DB 처리가 필요하면 model을
통해 처리하고 그 결과를 반환받음
4) view는 로직 처리가 끝나면 template를 사용해 클라이언트에게
전송할 HTML 파일을 생성
5) view는 최종 결과로 HTML 파일을 클라이언트에게 보내 응답
Model : 사용될 data에 대한 정의를 담고 있는 django의 class
django는 ORM기법을 사용해 애플리케이션에서 사용할 DB를 class로 매칭해서 코딩할 수 있습니다.
= 하나의 model class가 하나의 table에 매핑
= model class의 속성은 table의 column에 매핑
table 및 column을 자동으로 생성하기 위한 규칙
- https://docs.djangoproject.com/en/2.1/topics/db/models
ORM : Object-Relational-Mapping : 객체와 관계형 DB를 연결해주는 역할
클라이언트로부터 요청을 받으면 요청에 들어있는 URL을 분석하는데,
즉 요청 속의 URL과 urls.py의 URL 패턴이 매칭되는지를 분석합니다.URL을 정의하기 위해서는 urls.py에 URL과 처리 함수 (view라 명칭함)를 매핑하는 code를 작성하면 됨. 이런 식의 URL/view 매핑을 URLconf라고 명명합니다..
View는 일반적으로 웹 요청을 받으면 아래와 같은 역할을 수행합니다.
1) DB 접속 등 해당 애플리케이션 로직에 맞는 처리를 하고,
2) 결과 데이터를 HTML로 변환하기 위해 Template처리를 한 후,
3) 최종 HTML로 된 응답데이터를 웹 클라이언트로 반환
즉, 다양한 형태의 응답 데이터를 만들어 내기 위한 로직을 view에 작성합니다. (HTML 데이터, 리다이렉션 명령, 404 에러 메세지 등등)
보통 views.py 파일에 작성하게 됩니다.
django가 클라이언트에게 반환하는 최종 응답은 HTML text입니다.
개발자가 작성하는 *.html 파일을 template이라 부르며, 화면 UI 모습을 template 문법에 맞게 작성합니다.
유의할 점은, template 파일을 적절한 디렉토리에 위치시켜야 한다는 것입니다.
즉, 장고에서 template 파일을 찾는 방식을 이해해야 하고, django는 그에 맞는 위치에 template 파일이 위치해야 이를 찾을 수 있습니다.django에서 template 파일을 찾을 대는 TEMPLATES 및 INSTALLED_APPS에 지정된 앱의 디렉토리를 검색합니다.
(이 항목들은 project 설정 파일인 settings.py에 정의되어 있습니다.)
TEMPLATES 항목에 정의된 디렉토리를 먼저 찾고 → 그 다음에 INSTALLED_APPS 항목에 등록된 각 앱의 templates 디렉토리를 찾습니다.
project란 : 개발 대상이 되는 전체 프로그램을 지칭
project를 몇 개의 기능 그룹으로 나누었을 때, project 하위의 서브 프로그램을 애플리케이션이라 명명
= 서브 프로그램인 애플리케이션을 개발 → 이를 모아 project 개발을 완성