Django의 기본 구조

서재환·2022년 3월 23일
0

Django

목록 보기
2/40

MTV 디자인 패턴 - 1

Model

데이터 관리
데이터베이스와 연결 및 실행
models.py

Template

데이터 출력
사용자에게 표현 방식 정의
html 파일

View

역할
웹 요청을 수신하고 응답하는 파이썬 함수 또는 클래스. 컨트롤러, 비즈니스 로직을 처리
views.py 형태로 django 내에 존재함.

Views를 반드는 방법에는 2가지 방법이 있습니다. FBV(Fuction Based View)와 CBV

FBV(Function Based View)

  장점
  - 구현이 간편함
  - 읽기 쉽고 직관적인 코드
  - 데코레이터의 간단한 사용법

  단점
  - 코드 확장과 재사용이 어려움
  	-> Framework 단에서 함수 만으로는 확장과 재사용이 어렵다.
    
  - 조건부 분기를 통한 HTTP 메서드 처리
	->
   
  사용처
  - 일화성, 특수 목적이 있는 곳에 FBV가 적합
  
CBV(Class Based View)

	장점
    - 코드 확장과 재사용 용이
    - 다중 상속, Mixin 가능
    - 내장 Class Based View 사용
      -> ListView, CreateView, DetailView
     
    단점
    - 읽기 어려우며 복잡도가 높음
    - 데코레이터 사용 시 함수를 재정의 해야 함
    
    사용처
    - 일반적인 생성, 조회, 수정 삭제 등의 View에 적합

무엇을 사용할까?
	상황에 따라 더 나은 것을 사용한다.

MTV 디자인 패턴 -2

View가 데이터관리와 출력 역할을 수행을 한다.

DB관련 데이터를 조작 할 일이 있을 때 View가 Model에게 요청을 보내고 Model로 부터 응답을 받는다.

출력을 하고자 할 때는 View가 Template에 요청을 보내고 Template으로부터 응답을 받는다.

Model로 부터 데이터를 받아 출력 할 일이 있는 로직의 경우 View가 Model에게 데이터 요청을 해서 응
답을 받고 이를 다시 Template에 요청을 보내서 응답을 받아 출력을 하는 로직을 거치게된다.

Django 실행 흐름

Model과 Template을 거치치 않고 View 만으로도 로직이 실행될 수 있다.

구조를 모르면 버그를 찾는데 시간이 걸린다. 따라서 구조를 파악하는 것이 중요하다.

버그를 찾을 때 무엇을 없애고 돌려보고 버그가 생기는지 보고 이런 식으로 소거법으로 버그가
어디서 발생하는지 접근해야 한다.

0개의 댓글