Meme's IT

[Django] MTV 디자인 패턴 본문

BackEnd/Django

[Django] MTV 디자인 패턴

Memez 2023. 9. 12. 14:55

디자인 패턴

: 소프트웨어 설계에서 발생하는 문제를 해결하기 위한 일반적인 해결책

MVC 디자인 패턴(Model, View, Controller)

:애플리케이션을 구조화하는 대표적인 패턴(데이터, 사용자 인터페이스, 비즈니스 로직을 분리)

  • 독립적이고 유지보수하기 쉬움

MTV 디자인 패턴(Model, Template, View)

: Django에서 애플리케이션을 구조화하는 패턴(MVC와 이름만 다른 개념)

Django MTV 구조

프로젝트 구조

  • setting.py: 프로젝트의 모든 설정을 관리
  • url.py: URL과 이에 해당하는 적정한 views를 연결
  • __init__.py: 해당 폴더를 패키지로 인식하도록 설정
  • manage.py: Django 프로젝트와 다양한 방법으로 상호작용하는 커맨드라인 유틸리티

앱 구조

  • admin.py: 관리자용 페이지 설정
  • models.py: DB와 관련된 Model을 정의
  • views.py: HTTP 요청을 처리하고 해당 요적에 따른 응답을 반환

Project에서 마저 해보기

1. testpjt/urls.py 의 경로로 들어가서 urlpatterns 확인서버를 들어가서 주소 뒤에 /admin을 입력하면 다음과 같은 화면을 확인할 수 있음

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

2. urls.py에 이전에 추가해둔 articles앱 추가하기

from django.contrib import admin
from django.urls import path
from articles import views            # 추가

urlpatterns = [
    path('admin/', admin.site.urls),
    path('articles/', views.index),        # 추가
]

다음과 같이 추가를 하면 서버주소/articles/ 로 요청을 할 때, views 모듈의 index 뷰 함수를 호출하게 된다.

3. articles/views.py의 경로로 들어가 view파일에 index함수를 정의해주기

from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request, './articles/index.html')

함수의 인자로 들어가는 request는 고정

4. articles 폴더 안에 templates 폴더를 생성해주고, 그 폴더안에 articles 폴더를 생성, 이후 aritcle 폴더 안에 index.html을 만들어 준다.

Testproject/articles/templates/articles/index.html 의 경로를 가지도록 만들어주기

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1>hello</h1>
  </body>
</html>

!+엔터로 html서식을 자동완성 후, h1>hello를 써준다.

5. 수정한 파일들을 모두 저장 후, 서버를 열어서 주소/articles로 확인할 수 있다.

'BackEnd > Django' 카테고리의 다른 글

[Django] Template 상속  (0) 2023.09.13
[Django] Template System  (0) 2023.09.13
[Django] Django 프로젝트 만들기  (0) 2023.09.12
[Django] 가상환경 만들기  (0) 2023.09.12
[Django] 사전 지식  (0) 2023.09.12