장고는 파이썬으로 작성된 오픈 소스 웹 프레임워크로, 모델-뷰-컨트롤러 패턴을 따르고 있다. 현재는 장고 소프트웨어 재단에 의해 관리되고 있다. 고도의 데이터베이스 기반 웹사이트를 작성하는 데 있어서 수고를 더는 것이 장고의 주된 목표이다.
유명한 디자인 패턴 중 하나인 Model-View-Controller(MVC) 패턴인데 django에서는 View와 Controller가 각각 Template, View로 치환 되어 사용된다. 패턴의 구조는 아래 이미지와 같고 본인은 백엔드 개발을 지향하기 때문에 Template은 제외한 Model과 View에 대해서만 다룰 것이다.
DB에 ORM기법을 사용하여 DB테이블을 class형태로 맵핑하여 DB테이블을 생성한다. 데이터베이스에서 각 테이블의 구조를 코드로 짠다고 이해하면 좀 더 쉽다.
클라이언트에게 어떠한 요청(request)을 URLconf를 통해 View가 받아서 해당 요청을 처리하면서 데이터가 필요하다면 Model에 접근하여 CRUD작업을 처리하고 결과를 응답(response)으로 보낸다.
이전에는 풀스텍으로 뷰에서 직접 템플릿을 불러오고 데이터를 입히는 방식으로 구현해 나갔지만 요즘에는 백엔드 기능만 전적으로 담당해서 데이터를 주고 받는 부분만 구현이 된다.