묭동이 개발 블로그
  • [Django] MVT Architecture
    2024년 01월 19일 18시 41분 14초에 업로드 된 글입니다.
    작성자: 묭동이

    안녕하세요 이번 글에서는 Django의 MVT(Model-View-Template) Architecture에 대해서 알아보도록 하겠습니다.

     

    MVT(Model-View-Template)

    • Django의 웹 애플리케이션 개발을 위한 디자인 패턴입니다.
    • MVC(Model-View-Controller) 아키텍처의 변형으로, 웹 애플리케이션을 구성하는 세 가지 주요 구성 요소로 나뉩니다:

     

    Model (모델)

    • 모델은 Django와 DB를 연결시켜주는 코드이며 데이터 형태를 나타냅니다.
    • 일반적으로 각각의 모델은 데이터베이스의 "테이블"과 매핑됩니다.
      • 즉, 데이터베이스의 각 테이블은 Django 모델로 표현되며, 모델은 Python 클래스로 작성합니다. 
    • 파일명은 기본값으로 models.py를 사용합니다.
    class DjangoModel(models.Model):
    	name = models.CharField("name")

    Model의 속성

    • 모든 Model 클래스는 django.db.models.Model 클래스를 상속받습니다.
    • 각각의 모델 속성은 DB 필드를 나타냅니다.

    View (뷰)

    • 뷰는 MVC 패턴의 Controller 역할을 합니다.
    • User의 요청(request)을 받아 처리하는 웹 사이트의 로직 코드이며 파이썬 함수(Function)을 사용합니다.
    • HTTP 요청을 처리하고, 요청에 따라 데이터를 모델에서 가져오거나 저장하고, 적절한 템플릿을 사용하여 응답을 구성합니다.
    • 즉, 뷰는 사용자의 요청을 받아 모델을 통해 데이터를 처리하고, 그 결과를 템플릿에 전달하여 사용자에게 보여줄 최종 웹 페이지를 생성합니다.
    • 파일명은 기본값으로 views.py를 사용합니다.
    def django_view(request):
    	return HttpResponse("Django View")

    Template (템플릿)

    • 템플릿은 사용자에게 표시될 페이지의 구조와 레이아웃을 정의합니다.
    • HTML을 기반으로 하며, Django 템플릿 언어(DTL)를 사용하여 동적 데이터를 표시하고 사용자 인터페이스를 구성합니다.
    • 템플릿은 순수 HTML 파일에 Python 코드를 삽입하여, 서버에서 처리된 데이터를 웹 페이지에 동적으로 표시할 수 있게 해줍니다. 
    • Django templates 디렉토리 내에 HTML 파일을 사용합니다.

    MVC와 MVT 패턴

    Django의 MVT 패턴은 MVC 소프트웨어 디자인 패턴과 유사한 패턴이며 부르는 명칭에만 차이가 있습니다.

    • MVC의 View -> MVT의 Template 의미
    • MVC의 Controller -> MVT의 View 의미

    위에서 볼 수 있듯이 View가 의미하는 바가 다름을 주의해야 할 것 같습니다.


    Reference

     

    The MVT Design Pattern of Django

    Understand the Model-View-Template architecture of a Django application

    python.plainenglish.io

     

    'Python > django' 카테고리의 다른 글

    [Django] SSLCertificationError macos  (0) 2024.01.25
    [Django] macos 프로젝트 구조 만들기  (0) 2024.01.18
    댓글