>  기사  >  백엔드 개발  >  Django의 아키텍처 이해: MTV 패턴.

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-18 20:16:30722검색

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 코드를 추가하세요

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

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

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

core/models.py에 다음 코드를 추가하세요.

cd mysite
python3 manage.py startapp core

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

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

.
├── 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

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

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

위 내용은 Django의 아키텍처 이해: MTV 패턴.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.