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 기능도 수월하게 학습할 수 있습니다!