본문 바로가기

Coding

1. Django 개념알기

김석훈, 『Django로 배우는 쉽고 빠른 웹 개발 파이썬 웹프로그래밍, 한빛미디어 를 참고했다!


1)개념

Django(이하 장고)는 웹 프로그램 개발시 일반적으로 쓰이는 MVC 패턴을 따른다. MVC는 데이터, 사용자가 보는 인터페이스, 데이터 처리 로직을 모듈화 해서 설계하는 방식이다. UI디자이너와 개발자가 다루는 부분을 구분해서 작업의 효율을 높일 수 있는 방식이다. 장고도 이런 방식을 따르지만 용어가 조금 다르다.

장고에서는 MTV 패턴을 사용하며 이는 데이터를 의미하는 Model, 사용자 인터페이스를 의미하는 Template, 실제로 동작할 프로그램 로직인 View 세 가지 요소를 합친 것이다.


장고에서 웹클라이언트의 요청이 처리되는 과정은 다음과 같다.


1. 클라이언트로 부터 요청이 들어왔다!

2. URLconf 모듈을 이용해서 URL을 분석한다!

3. 분석한 결과로 해당 URL을 어떤 뷰가 처리할지 결정한다!

4. 지명당한 뷰는 자신의 로직을 실행하는데, 

5. 이 때 필요하다면 모델을 통해 데이터베이스 접근도 한다.

6. 뷰가 로직처리를 마치면 템플릿을 통해 클라이언트에게 보낼 HTML을 생성한다.

7. 최종적으로 뷰가 HTML파일을 클라이언트에게 보내 응답한다! 


2)Model(데이터베이스)

D장고에서는 ORM기법을 이용해서 쉽게 데이터베이스를 정의할 수 있다! ORM기법을 이용하면 Table을 만들때 데이터베이스 엔진의 종류에 상관 없이 테이블은 class로 테이블의 컬럼은 class의 속성으로 표현할 수 있다!


3)Template(UI)

템플릿 파일은 .html확장자를 가진다. settings.py파일에 정의된 TEMPLATE_DIR 및 INSTALLED_APPS에 등록된 경로 내에서만 검색하므로 저장 위치를 주의해야한다.


4)View(로직)

장고에서의 뷰는 함수나 클래스의 메소드로 작성한다. 웹 요청을 받고 HTML데이터나 리다이렉션 명령, 에러 메시지 등의 응답을 반환한다. 뷰 함수는 첫 번째 인자로 HttpRequest객체를 받고, 모든 처리 후에 최종적으로 HttpResponse 객체를 반환한다. HttpResponse클래스의 하위 클래스에는 HttpResponseNotFound 객체가 있어 에러를 반환할 수도 있다.



출처: http://doongkibangki.tistory.com/22 [둥기방기의 블로그]