Django - URL 패턴 name 속성
# urls.py
path('posts/', views.post_details, name="post_list')
장고 urls.py 파일에서 URL 패턴을 정의할 때 'name' 속성은 URL 패턴에 이름을 부여하는 중요한 기능이라고 한다.
1. view, template에서 URL 문자열을 하드 코딩 없이 name 값을 사용하여 URL 생성 가능
2. 템플릿에서 name을 템플릿 태그로 url 정의 가능
3. 쿼리 파라메터를 추가하여 동적 URL 생성 가능
# '/posts/'로 리다이렉트
return redirect('post_list')
# 템플릿 태그
<a href="{% url 'post_list' %}">게시글 목록</a>
# 매개변수가 있는 URL
from django.urls import reverse
url = reverse('post_list', args=[5]) #'/posts/5/' 반환
# 쿼리 파라메터 추가 URL 동적 생성
from django.shortcuts import redirect
from django.urls import reverse
from django.utils.http import urlencode
def some_view(request):
# 어떤 처리 로직
...
# 페이지 2로 리다이렉트
base_url = reverse('post_list')
query_string = urlencode({'page': 2})
url = f'{base_url}?{query_string}'
return redirect(url)
결론: name 속성을 사용하면 URL 구조 변경 시 용이하고 코드 가독성, 유지보수성을 향상 시킨다!
'Programming👩🏻💻 > Web framework' 카테고리의 다른 글
[Django] 공식문서로 익혀보기 part4.2 - 함수/클래스뷰, 제네릭뷰 (1) | 2024.11.30 |
---|---|
[Django] 공식문서로 익혀보기 part4.1 - 폼(Form) 작성하기 (1) | 2024.11.24 |
[Django] 공식문서로 익혀보기 part3 - views 작성 (2) | 2024.11.19 |
[Django] 공식문서로 익혀보기 part2 - 데이터베이스 설치 (6) | 2024.11.15 |
[Django] 공식문서로 익혀보기 part1 - 첫 시작, 프로젝트와 앱 만들기 (5) | 2024.11.15 |