3.Django(장고) - ecommerce 프로젝트 - MTV 의 이해

JungSik Heo·2024년 12월 3일

1.MTV 디자인 패턴

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에 적합

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

Django 실행 흐름

[1] 브라우저에서 로컬 서버로 http://localhost:8000/home 페이지를 요청하면
[2] urls.py 파일에서 /pybo URL 매핑을 확인하여 views.py 파일의 index 함수를 호출하고
[3] 호출한 결과를 브라우저에 반영한다.

URL 분리


하나의 프로젝트에 여러 앱을 개발하는 경우 앱 마다 url.py 를 따로 만들어서 관리해주는것이 좋다.

config/urls.py 파일을 다음처럼 수정하자.

from django.contrib import admin
from django.urls import include, path


urlpatterns = [
    path("admin/", admin.site.urls),
    path("home/", include('home.urls')),
]

이제 home/urls.py 파일을 생성

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path("", views.index),
]

MTV 그림 도식화.


profile
쿵스보이(얼짱뮤지션)

0개의 댓글