"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Django의 아키텍처 이해: MTV 패턴.

Django의 아키텍처 이해: MTV 패턴.

2024-11-02에 게시됨
검색:558

Understanding Django’s Architecture: The MTV Pattern.

Django는 웹 개발을 위해 MTV(Model-Template-View) 패턴을 따릅니다. 각 구성 요소에 대한 분석은 다음과 같습니다.

모델: 데이터 구조를 정의하고 데이터베이스와의 상호 작용을 처리하므로 SQL 쿼리를 수동으로 작성하지 않고도 데이터를 저장하고 검색할 수 있습니다.

템플릿: HTML을 렌더링하고 사용자에게 데이터를 표시하는 역할을 담당합니다. DTL(Django 템플릿 언어)과 혼합된 HTML을 작성하여 동적 콘텐츠를 표시합니다.

뷰: 비즈니스 로직 레이어 역할을 합니다. 모델과 템플릿을 연결하고, 사용자 요청을 처리하고, 모델과 상호 작용하고, 응답을 반환합니다(종종 템플릿에서 렌더링된 HTML).

Django의 요청-응답 주기 작동 방식:

  • 사용자가 (URL을 통해) 웹페이지를 요청합니다.
  • Django는 URL을 뷰와 일치시킵니다.
  • 뷰는 모델에서 데이터를 가져와 템플릿에 전달합니다.
  • 템플릿은 데이터를 HTML로 렌더링하고 이를 사용자에게 응답으로 다시 보냅니다.

1단계: Django에서 새 앱 만들기.
이전 기사에서 다룬 대로 Django를 설정한 후 프로젝트에 새 앱을 만들어 보겠습니다.

다음 명령을 실행하세요:

cd mysite
python3 manage.py startapp core

이렇게 하면 mysite 프로젝트 내에 core라는 앱이 생성됩니다. 이제 파일 구조는 다음과 같습니다.

.
├── core
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mysite
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

2단계: 설정 파일에 앱 등록.
Django가 새 앱을 인식하도록 하려면 mysite/settings.py의 INSTALLED_APPS에 해당 앱을 추가해야 합니다:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core',  # add this line
]

3단계: 기본 보기 만들기.
"Hello, World!"를 반환하는 간단한 뷰를 만들어 보겠습니다. 메시지.

핵심 앱 내에서 views.py를 열고 다음 코드를 추가하세요.

from django.http import HttpResponse

def learn(request):
    return HttpResponse("Hello, World!")

4단계: 뷰에 URL 매핑.
URL을 통해 이 보기에 액세스하려면 core/urls.py 파일에 매핑해야 합니다. 이 파일이 없으면 만들고 다음을 추가하세요.

from django.urls import path
from . import views

urlpatterns = [
    path('learn/', views.learn, name='learn'),
]

다음으로 기본 mysite/urls.py 파일에 핵심 앱의 URL을 포함합니다.

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('core/', include('core.urls')),  # include the core app URLs
]

이제 서버를 실행하고 http://127.0.0.1:8000/core/learn/에 접속하면 "Hello, World!"가 표시됩니다. 표시됩니다.
5단계: 템플릿 생성 및 렌더링

from django.shortcuts import render

def learn(request):
    context = {'name': 'Django'}
    return render(request, 'hello.html', context)

이 보기는 이제 hello.html이라는 템플릿에 변수(이름)를 전달합니다.
6단계: 템플릿 디렉토리 및 HTML 파일 생성.
핵심 앱에서 템플릿 폴더와 hello.html 파일을 만듭니다.

mkdir core/templates
touch core/templates/hello.html

hello.html 내부에 다음 HTML 코드를 추가하세요.



    
    
    Hello Template


    

Hello, {{ name }}!

학습 URL을 다시 방문하면 이제 "Hello, Django!"가 표시됩니다. 브라우저에서.

7단계: 기본 모델 생성.
블로그 게시물을 저장하기 위한 간단한 Post 모델을 만들어 보겠습니다.

core/models.py에 다음 코드를 추가합니다.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

    def __str__(self):
        return self.title

이 Postmodel에는 제목과 콘텐츠라는 두 가지 필드가 있습니다. __str__ 메소드는 Post 객체가 Django 관리자 또는 쉘에서 제목과 함께 표시되도록 합니다

8단계: 데이터베이스에 모델 적용.
데이터베이스에 해당 테이블을 생성하려면 다음 명령을 실행하세요:

python3 manage.py makemigrations
python3 manage.py migrate

Django는 이제 Post 모델을 위한 데이터베이스 테이블을 생성합니다.

이 단계를 수행하면 모델, 뷰 및 템플릿이 포함된 기본 Django 앱이 성공적으로 생성되었습니다. 이제 사용자 입력 처리, 디자인 개선, 앱의 대화형 만들기 등 더 많은 기능을 추가하여 이 기반을 확장할 수 있습니다.

릴리스 선언문 이 글은 https://dev.to/vincenttommi/2-understanding-djangos-architecture-the-mtv-pattern-1gl?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3