3장, 장고 웹 프레임워크: MTV(Moedl, Template, View)
3장 장고프레임워크
*장고의 애플리케이션 개발 방식
-MTV 패턴
클라이언트의 요청을 받으면 URLconf 이용하여 URL 분석
=> URL 분석 결과를 바탕으로 뷰 결정
=> 로직 실행 후 DB 처리가 필요하면 모델을 통해 처리, 결과 반환
=> 템플릿 사용하여 전송할 HTML 파일 생성
=> 최종 결과로 HTML 파일 응답
*Model: DB 설계
장고는 ORM 방식을 사용하여 DB에 쉽게 엑세스 가능
하나의 모델 클라스 => 테이블 (appname_classname과 가타이 테이블 생성)
모델 클라스의 속성 => 컬럼
*템플릿
-.html 확장자, 장고의 템플릿 시스템 문법에 맞춰 장성
-적절한 디렉토리에 위치 필요
=> TEMPLATE_DIRS 및 INSTALLED_APPS에서 지정한 디렉토리 검색 (settings.py), 지정된 순서대로 검색
=> TEMPLATE_DIRS 항목에 지정된 디렉토리를 먼저 찾고
=> 그 다음에 IINSTALLED_APPS 항목의 디렉토리 검색 (해당 폴더의 하위 templates)
*URLconf- URL설계: Elegant URL
-urls.py 파일에 URL과 처리함수(VIew)를 매핑 => 이런 매핑을 URLconf라고 함
-장고에서 URL을 분석하는 순서:
settings.py 파일의 ROOT_URLCONF 를 ㅌ통해 URLconf(urls.py) 위치 탐색
=> URLconf 모듈 로딩, urlpatterns 변수의 URL 리스트 검사
=> 위에서부터 리스트 검사, 매칭되면 검사 종료
=> 매칭된 URL 뷰 호출, 호출시 HttpRequest 객체와 매칭시 추출한 단어를 뷰에 인자로 넘김
=> 매칭에 실패시 에러 처리 뷰 호출
*View- 로직 설계
-웹 요청을 받아서 로직 처리 => 데이터를 HTML로 변환하기 위한 템플릿 처리 => 최종 응답 데이터를 웹 클라이언트로 반환
*polls 앱 만들어보기