nullvuild

Bloger @nullvuild

Created Date '2025/03/15 오후 08:49

Modified Date '2025/03/15 오후 08:49

#Django #URL #View #Template #Model

URL, View, Tempalte, Model 블록도

Pasted Image

Django는 웹 애플리케이션 개발을 위한 고수준 웹 프레임워크로, 빠르고 안전하며 확장 가능한 웹사이트를 구축하는 데 도움을 준다. Django의 주요 구성 요소인 View, Template, Model, URL에 대해 설명한다.



URL

URL은 웹 애플리케이션의 엔드포인트를 정의하는 부분이다. Django의 URL 디스패처를 사용하여 요청된 URL을 적절한 뷰로 매핑한다.


유저가 www.example.com과 같은 url을 통해 접근했을 때, View 내의 실행할 함수를 정의한다.

# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('my-view/', views.my_view, name='my_view'),
]

View

View는 웹 애플리케이션의 로직을 처리하는 부분이다. 사용자의 요청을 받아 적절한 응답을 생성한다. View는 일반적으로 함수 기반 뷰(Function-Based View, FBV) 또는 클래스 기반 뷰(Class-Based View, CBV)로 작성된다.


View에서 정의한 함수(또는 클래스)는 개발된 코드에 따라 Python 로직, Template(.html), Model(db)를 처리한다.

# 함수 기반 뷰 예제
from django.http import HttpResponse

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

# 클래스 기반 뷰 예제
from django.http import HttpResponse
from django.views import View

class MyView(View):
    def get(self, request):
        return HttpResponse("Hello, World!")

Template

Template은 웹 페이지의 표시 로직을 처리하는 부분이다. HTML 파일로 작성되며, Django 템플릿 언어(DTL)를 사용하여 동적 콘텐츠를 생성한다.


html 파일이라고 보면 된다. 여기에 View에서 전달한 Python 기반 변수가 포함될 수 있다. 또한 요구에 따라 js, ajax 등도 포함된다.

<!-- templates/my_template.html -->
<!DOCTYPE html>
<html>
<head>
    <title>My Page</title>
</head>
<body>
    <h1>{{ title }}</h1>
    <p>{{ message }}</p>
</body>
</html>

# View에서 템플릿 사용 예제
from django.shortcuts import render

def my_view(request):
    context = {
        'title': 'My Title',
        'message': 'Hello, World!'
    }
    return render(request, 'my_template.html', context)

Model

Model은 데이터베이스와 상호작용하는 부분이다. Django의 ORM(Object-Relational Mapping)을 사용하여 데이터베이스 테이블을 파이썬 클래스로 정의한다.


처음에 Model을 구성한 후, Migration을 하면 Django 템플릿 내에서 DB를 편하게 이용 및 관리할 수 있다.

# models.py
from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

    def __str__(self):
        return self.name

# View에서 모델 사용 예제
from .models import MyModel

def my_view(request):
    objects = MyModel.objects.all()
    context = {
        'objects': objects
    }
    return render(request, 'my_template.html', context)


이와 같이 Django에서 View, Template, Model, URL은 각각의 역할을 수행하며, 이들이 조화롭게 작동하여 웹 애플리케이션을 구성한다.

Nullvuild

Nullvuild

@nullvuild

프로필