상세 컨텐츠

본문 제목

Django (2) Major Components

개발 Recording/Django

by sm-stack 2023. 6. 11. 15:46

본문

 

Django의 핵심 구성 요소

Django : 데이터(Model)를 로직(View)에 따라 처리해 유저에게 보여준다(Template)

Template 레이어는 프론트엔드를 나타냄. → 주 사용 목적은 백엔드를 구축하기 위함이므로, Model과 View에 신경 써야 함.

 

 

Model

웹서비스가 반복적으로 저장하고 활용할 데이터의 구조를 파이썬 클래스로 표현할 수 있도록 장고에서 제공하는 API

  • 모든 클래스는 django.db.models.Model의 subclass로 구현.
  • 작성한 대로 기능하는 일종의 DB 접근 API
  • ORM(Object-Relational Mapping) 기능 수행
    • 하나의 모델 클래스는 하나의 DB 테이블과 대응
    • 모델 클래스의 모든 attribute는 각각의 DB 필드가 됨.
    • 모델 구현 사항 변경 내역을 통해 DB 스키마를 변경하는 migration 기능
      • 마이그레이션(migration)이란 한 종류의 DB에서 다른 종류의 DB로 데이터를 옮기는 

Views

유저의 HTTP 요청을 받아 내부적으로 처리 후, 다시 HTTP 응답을 돌려주기까지의 로직을 담당

  • 크게 두 가지 파트로 구성
    • URL dispatcher : 요청의 URL을 보고 대응하는 파이썬 함수
    • View Functions : URL dispatcher를 거쳐 넘어온 요청을 처리하는 함수들
    1. URL Dispatcher (요청 라우팅)
      • url 모듈에 정의된 대로 작동
      • 해당 모듈 내 urlpatterns 라는 변수 이름을 가진 리스트를 탐색
      • 요청 URL이 들어오면, 해당 리스트에 순서대로 정의된 패턴 중 가장 먼저 매치된 패턴에 따라 요청이 매핑된 View function으로 routing됨.
    2. View function (로직)
      • 들어온 HTTP 요청을 기반으로 모델에 들어있는 데이터를 조회하고 필요 시 가공해 그 결과를 유저에게 HTTP 응답의 형태로 다시 전달.
      • 리턴 타입은 반드시 HttpResponse 객체
      • FBV(Function Based View)와 CBV(Class Based View)가 있음: FBV는 단일 파이썬 함수, CBV는 Django에서 추상화한 클래스 인터페이스들을 상속받아 활용할 수 있음.

Templates

Django에서 HTTP 요청의 처리 결과를 유저에게 보여줄 형태(주로 HTML 문서로 표현된 웹페이지)로 가공하는 레이어

'개발 Recording > Django' 카테고리의 다른 글

Django (3) 투표 앱 만들기 - 1  (0) 2023.06.16
Django (1) 기본 개념 및 설치 방법  (0) 2023.06.11

관련글 더보기