Django

Chapter 2-2 Django Views Tutorial

Chansman 2025. 4. 30. 14:22

🧠 Django Views Tutorial

이 튜토리얼은 Django 프레임워크에서 views.py를 활용해 동적 웹 페이지를 구성하는 방법을 단계별로 설명합니다. 기존 urls.py 중심의 작업을 views.py로 구조화하여, Django 프로젝트의 MVC 패턴을 실제로 적용해보는 것이 핵심입니다.


1️⃣ 뷰를 활용한 페이지 생성

📌 핵심 개념

  • views.py는 Django의 메인 로직이 위치하는 파일입니다.
  • 기존 urls.py에서 직접 작성했던 HTTP 응답 코드를 함수로 분리하여 처리합니다.

✅ 구현 흐름

# views.py
from django.http import HttpResponse

def bookmark_list(request):
    return HttpResponse("<h1>북마크 리스트 페이지입니다.</h1>")
# urls.py
from django.urls import path
from bookmark import views

urlpatterns = [
    path('bookmark/', views.bookmark_list),
]

💻 결과 확인

http://localhost:8000/bookmark/ 접속 시 "북마크 리스트 페이지입니다." 출력


2️⃣ HTTPResponse → render로 전환하기

🎯 이유

  • HTML을 직접 작성하기보다 템플릿 파일을 사용하는 방식이 유지보수 및 확장성에 유리합니다.

✅ 코드 변경

from django.shortcuts import render

def bookmark_list(request):
    return render(request, 'bookmark_list.html')
<!-- templates/bookmark_list.html -->
<h1>북마크 리스트 페이지입니다.</h1>

🧪 결과

동일한 페이지가 출력되지만 HTML은 별도 템플릿에서 관리됩니다.


3️⃣ 북마크 상세 페이지 만들기

✅ 뷰 함수 작성

# views.py

def bookmark_detail(request, number):
    return render(request, 'bookmark_detail.html', {'number': number})

✅ URLConf 설정

# urls.py
urlpatterns = [
    path('bookmark/<int:number>/', views.bookmark_detail),
]

✅ 템플릿 생성

<!-- templates/bookmark_detail.html -->
<h1>{{ number }}번 디테일 페이지입니다.</h1>

🔍 결과 예시

  • /bookmark/1/ → "1번 디테일 페이지입니다."
  • /bookmark/2/ → "2번 디테일 페이지입니다."

🧩 마무리 요약

요소 설명

views.py 로직을 담당하는 메인 함수 위치
HttpResponse 간단한 문자열 응답 (비추천)
render() 템플릿을 통해 HTML을 렌더링 (권장)
템플릿 파일 templates/ 디렉토리에 위치, 동적 표현 가능
URLConf URL 경로에 맞는 뷰 함수 연결

✅ 이 흐름을 이해하면 앞으로 모델, 폼, 인증 기능 등 복잡한 Django 기능도 수월하게 학습할 수 있습니다!