Django에서는 URL 경로에 변수를 포함시켜
하나의 URL 패턴으로 여러 페이지를 처리할 수 있습니다.
이 방식을 보통 동적 URL(Dynamic URL) 이라고 부릅니다.
1. URL에 변수 선언하기
# urls.py
urlpatterns = [
path("index/", views.index),
path("menu/<str:food>/", views.food_detail),
]
- <str:food> → 경로 변수(Path Variable)
- str : 문자열 타입
- food : 변수 이름
이 한 줄로 아래 URL들이 모두 처리됩니다.
/foods/menu/pasta
/foods/menu/chicken
/foods/menu/sushi
2. View에서 경로 변수 받기
def food_detail(request, food):
context = {
"name": food
}
return render(request, "foods/detail.html", context)
- URL에 들어온 pasta, chicken 같은 값이
- food 파라미터로 그대로 전달됨
URL이 곧 데이터의 역할을 합니다.
3. Template에서 출력하기
<!-- detail.html -->
<h2>{{ name }}</h2>
- View에서 전달한 값이 템플릿 변수로 치환
- /menu/pasta → pasta 출력
- /menu/chicken → chicken 출력
URL에 따라 화면 내용이 달라지는 동적 페이지가 완성됩니다.
4. 왜 동적 URL을 사용할까?
- 메뉴마다 URL을 따로 만들 필요 ❌
- 하나의 view + 하나의 template로 처리 ⭕
- URL이 의미를 가지는 우아한 URL 구조
유지보수도 쉽고, 확장도 편합니다.
5. 정리하면
- <str:변수명> → 경로 변수
- URL 값이 view 함수로 전달됨
- view → template로 넘겨 화면에 출력
- 이것이 Django 동적 URL의 핵심 구조
URL이 곧 데이터가 되는 구조
'Django 프론트& 백엔드 개발' 카테고리의 다른 글
| URL, View, Template의 관계 정리 (0) | 2026.01.04 |
|---|---|
| Django의 get_static_prefix 개념 (0) | 2026.01.04 |
| 데이터 전달로 동적 웹 페이지 개념 (0) | 2026.01.04 |
| Django 템플릿 상속 이해하기 (부모 · 자식 템플릿) (0) | 2026.01.04 |
| 템플릿 언어 이해하기 (0) | 2026.01.04 |