🎬 Django - 가짜 데이터베이스로 웹 페이지 만들기 튜토리얼
📌 튜토리얼 핵심 요약
이 튜토리얼은 가짜 데이터베이스를 활용하여 영화 순위 목록을 만들고, 각 영화의 상세 페이지로 연결하는 방법을 안내합니다. 핵심은 리스트 컴프리헨션과 enumerate를 사용하여 데이터를 효율적으로 처리하고, URL 패턴을 설정하여 각 영화에 대한 상세 페이지를 구현하는 것입니다. 또한, 예외 처리를 통해 404 오류를 적절히 처리하여 사용자 경험을 개선하는 방법을 제시합니다.
1️⃣ 가짜 데이터베이스 구성하기
# 가짜 데이터베이스 (영화 목록)
movie_list = [
{"title": "파묘", "director": "장재현"},
{"title": "원카", "director": "홍길동"},
{"title": "균", "director": "김철수"},
{"title": "시민", "director": "이영희"},
{"title": "더키", "director": "박민수"}
]
✅ 주제는 자유롭게 변경 가능 (애니메이션, 게임 등) ✅ 두 가지 이상의 값을 가진 구조 (예: 타이틀, 디렉터)
2️⃣ 목록 페이지 만들기 (리스트 컴프리헨션 활용)
from django.http import HttpResponse
def movie_titles(request):
titles = [movie["title"] for movie in movie_list]
response_text = "<br>".join(titles)
return HttpResponse(response_text)
✅ 리스트 컴프리헨션으로 간단하게 타이틀만 출력 ✅ <br>로 줄바꿈하여 출력 ✅ URL 패턴에 등록하여 /movies/ 접속 시 목록 출력
# urls.py
path('movies/', movie_titles)
3️⃣ 상세 페이지 구현 및 에러 처리
from django.http import Http404
def movie_detail(request, index):
if index >= len(movie_list):
raise Http404("페이지를 찾을 수 없습니다.")
movie = movie_list[index]
response_text = f"<h1>{movie['title']}</h1><p>감독: {movie['director']}</p>"
return HttpResponse(response_text)
✅ 인덱스를 URL에서 받아 해당 영화 정보 출력 ✅ 존재하지 않는 인덱스 접근 시 404 에러 발생 ✅ 400번대(클라이언트 잘못)와 500번대(서버 잘못) 에러 구분 강조
# urls.py
path('movie/<int:index>/', movie_detail)
4️⃣ 목록에서 상세 페이지로 이동 (클릭 기능 추가)
def movie_titles_with_link(request):
links = [
f'<a href="/movie/{index}/">{movie["title"]}</a><br>'
for index, movie in enumerate(movie_list)
]
response_text = "".join(links)
return HttpResponse(response_text)
✅ enumerate로 인덱스와 타이틀을 함께 가져오기 ✅ <a> 태그로 각각의 상세 페이지로 이동 링크 생성 ✅ 줄바꿈 <br> 추가로 깔끔한 출력
# urls.py
path('movies_with_link/', movie_titles_with_link)
5️⃣ 리스트 컴프리헨션 + Enumerate 심화 사용
def movie_titles_optimized(request):
response_text = "<br>".join(
f'<a href="/movie/{index}/">{movie["title"]}</a>'
for index, movie in enumerate(movie_list)
)
return HttpResponse(response_text)
✅ 리스트 컴프리헨션 안에 enumerate 바로 활용 ✅ 더 간결하고 깔끔한 코드 작성 가능 ✅ 최종적으로 깔끔한 링크 목록 완성
✅ 최종 요약
- 데이터베이스 없이 리스트/딕셔너리로 간단한 웹앱 구현 가능
- URLconf를 활용하여 목록과 상세 페이지를 구분하여 처리
- 404 오류를 명확히 처리하여 사용자 경험 개선
- enumerate와 리스트 컴프리헨션을 활용해 코드 최적화 가능
👉 이 튜토리얼을 통해 Django에서 웹 페이지 구성의 기본과 데이터 출력 흐름을 마스터할 수 있습니다! 🚀
'Django' 카테고리의 다른 글
Chapter 1-10 Django로 구구단 페이지 만들기 (0) | 2025.04.29 |
---|---|
Chapter 1-9 Django 템플릿 구성 파일 개발 & 방안 (0) | 2025.04.29 |
Chapter 1-6 Django 기본 HTTP 응답 만들기 튜토리얼 (0) | 2025.04.29 |
Chapter 1-2 Windows에서 pyenv + 가상환경 설정법 (Mac 과정 대응 버전) (0) | 2025.04.29 |
Chapter 1-5 Django 프로젝트 시작하기 - 가상환경 설정부터 구조 이해까지 (0) | 2025.04.29 |