backend/django

3장, 장고 웹 프레임워크: MTV(Moedl, Template, View)

seul chan 2017. 3. 8. 01:04

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 앱 만들어보기