[REAL Python – Django] – “Django – 장고 웹 프레임워크란?”
[REAL Python – Django] – “Django – 장고 웹 프레임워크란?”
Django 웹 프레임워크
Django makes it easier to build better web apps more quickly and with less code.
https://www.djangoproject.com/
고도의 데이터베이스 기반 웹사이트를 작성하는 데 있어서 수고를 더는 것이 장고의 주된 목표이다. 장고는 콤포넌트의 재사용성(reusability)과 플러그인화 가능성(pluggability), 빠른 개발 등을 강조하고 있다. 또한, “DRY(Don’t repeat yourself: 중복배제)” 원리를 따랐다. 설정 파일부터 데이터 모델에까지 파이썬 언어가 구석구석에 쓰였다.
https://ko.wikipedia.org/wiki/%EC%9E%A5%EA%B3%A0_(%EC%9B%B9_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC)
맨 위의 문구에서도 알 수 있듯이 장고는 적은 코드로, 보다 빠르게 웹 애플리케이션을 제작하도록 해 주는, 파이썬으로 작성된 웹 프레임워크입니다.
Django의 MVT 패턴
M(Model) – 모델
모델은 데이터에 관한 정보를 담는다. 데이터에 대한 접근, 검증, 작동과 데이터 사이의 관계를 정의하는데, 일반적으로 각각의 모델은 데이터베이스에서 테이블에 해당한다.
장고에서는 모델을 정의할 때 필드의 종류를 지정해줘야 하는데, 이것이 데이터베이스에게 컬럼 타입을 알려주고 HTML 폼으로 표시 될 때의 입력 타입도 내포하는 역할을 한다. 또한 장고의 폼 자동 생성 API를 이용할 때 데이터 검증에 쓰이기도 한다.[13]
모델은 자료의 형태를 정의합니다.
V(View) – 뷰
어떤 데이터가 표시될 것인지를 정의한다. 뷰는 HTTP 응답(response)를 반환해야 하며 응답의 종류는 웹 페이지, 리디렉션, 문서 등의 다양한 형태가 가능하다.
장고에는 자주 사용되는 형태의 뷰를 패턴화하여 추상화 해둔 재사용 가능한 뷰들을 내장해 놓았는데, 이들을 제네릭 뷰(generic view) 라고 하며 원하는 제네릭 뷰를 상속한 클래스 뷰를 생성하여 사용할 수 있다.[14]
뷰는 어떤 데이터를 어떻게 표시할 것인지를 정의합니다.
T(Template) – 템플릿
데이터가 어떻게 표시되는 지를 정의한다. 템플릿은 사용자에게 실제로 보여지는 웹 페이지나 문서를 다룬다.
흔히 HTML 에 기반해서 템플릿을 만들며, HTML 에 동적인 요소를 추가하기 위해 파이썬의 일부 기능을 쓰게 도와주는 장고 템플릿 태그가 존재한다.[15]
템플릿으로 웹 페이지에서 표현될 모습을 정의합니다.