📌 Django URL 설정 및 템플릿 활용하기
이번 포스팅에서는 Django의 URL 설정과 템플릿을 활용하여 간단한 페이지를 만드는 과정을 차근차근 정리해보겠습니다. 코드를 통해 흐름을 이해하고 실습까지 따라 해보세요!
📍 1. URL 설정(urls.py)
URL을 정의하여 요청이 들어왔을 때 어떤 뷰 함수로 처리할지 연결해줍니다.
from django.urls import path
from django.http import Http404
from django.shortcuts import render
# 책 목록 페이지
def book_list(request):
return render(request, 'book_list.html')
# 특정 책 페이지
def book(request, num):
return render(request, 'book_detail.html', {'num': num})
# 영화 정보 데이터
movie_list = [
{'title': '파묘', 'director': '장재현'},
{'title': '솔닭', 'director': '장재원'},
{'title': '라집', 'director': '장재투'},
{'title': '시나', 'director': '장재쓰리'},
]
# 영화 목록 페이지
def movies(request):
return render(request, 'movies.html', {'movie_list': movie_list})
# 특정 영화 정보 페이지
def movie_detail(request, index):
if index > len(movie_list) - 1:
raise Http404
movie = movie_list[index]
context = {'movie': movie}
return render(request, 'movie.html', context)
# URL 패턴 정의
urlpatterns = [
path('book/<int:num>/', book),
path('book_list/', book_list),
path('movie/', movies),
path('movie/<int:index>/', movie_detail),
]
📍 2. 템플릿 설정 (settings.py 변경)
Django 템플릿 설정을 BASE_DIR 기준으로 설정해야 합니다.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
📍 3. HTML 템플릿 파일 만들기
✅ book_list.html
책 목록을 출력하며 각 책 번호를 클릭하면 상세 페이지로 이동합니다.
<body>
{% for num in '0123456789'|make_list %}
<h1><a href="/book/{{ num }}/">Book {{ num }}</a></h1>
{% endfor %}
</body>
✅ book_detail.html
선택된 책의 번호를 상세 페이지에 표시합니다.
<body>
<h1>{{ num }}번째 페이지입니다.</h1>
</body>
✅ movies.html
상위 3개의 영화 정보를 링크로 표시합니다.
<body>
{% for movie in movie_list %}
{% if forloop.counter <= 3 %}
{{ forloop.counter }}위: <a href="/movie/{{ forloop.counter0 }}">{{ movie.title }}</a><br>
{% endif %}
{% endfor %}
</body>
✅ movie.html
선택된 영화의 제목과 감독 정보를 표시합니다.
<body>
<h1>{{ movie.title }}</h1>
<p>감독: {{ movie.director }}</p>
</body>
🧩 동작 흐름 정리
- 사용자가 URL로 접속 → URL 패턴 매칭
- 해당 URL 패턴의 뷰 함수 호출
- 뷰 함수에서 데이터를 처리하고 HTML 템플릿에 전달
- 템플릿이 데이터를 이용해 페이지를 렌더링 → 사용자에게 표시
이 과정을 통해 사용자는 요청한 페이지를 정확히 보게 됩니다.
🚀 실습 팁
- 각 URL에 접속하여 원하는 결과가 잘 나오는지 확인해보세요.
- 오류가 발생하면 Django가 제공하는 친절한 에러 메시지를 참고하여 디버깅하세요!
이제 Django URL과 템플릿을 자유롭게 활용해 나만의 웹페이지를 만들어 보세요! 😊
'기술블로그' 카테고리의 다른 글
Django 템플릿 for문 완전 정복: 리스트 컴프리헨션(튜플형태) + 템플릿 반복문 해석 (0) | 2025.04.30 |
---|---|
📝 파이썬 리스트 컴프리헨션 활용: 구구단 생성하기 (0) | 2025.04.30 |
🔁 Django 전체 흐름 ( views, urls(route), models, templates) (0) | 2025.04.29 |
🌐 Django urls.py만으로 구현한 웹 애플리케이션 (0) | 2025.04.29 |
➕ += vs .append() 완전 정복 – 언제 어떤 걸 써야 할까? (0) | 2025.04.29 |