URL 별칭
- url 매핑에서 name 속성을 사용한다.
- url 하드코딩을 할 경우 링크 구조가 변경된다면 템플릿에서 url을 하나씩 수정해야한다.
- html 파일 뿐 아니라 redirect에서도 사용할 수 있다.
(urls.py)
from django.urls import path
from . import views
urlpatterns = [
path('<int:product_id>/', views.product_detail, name='product_detail'),
]
(templates-product-mall.html)
<!--URL 별칭-->
<!--shop.id는 url의 product_id에 전달되는 값-->
<a class="nav-link" style="text-align:right" href="{% url 'product_detail' shop.id %}">
주문하기<span class="sr-only"></span>
</a>
<!--URL 하드코딩-->
<a class="nav-link" style="text-align:right" href="/{{shop.id}}">
주문하기<span class="sr-only"></span>
</a>
URL 네임스페이스
url 별칭을 사용할 경우 타앱과 url 별칭 중복이 발생할 수 있다.
(urls.py)
from django.urls import path
from . import views
app_name = 'order'
urlpatterns = [
path('<int:product_id>/', views.product_detail, name='product_detail'),
]
(mall.html)
<!--app_name order의 url 별칭이 product_detail-->
<!--다음과 같이 파라미터 명을 정의할 수 있다-->
<!--공백을 사용하여 여러개의 파라미터를 사용할 수 있다-->
{% url 'order:product_detail' product_id = shop.id page=2%}
'Python > Django' 카테고리의 다른 글
08. Django css (0) | 2023.04.17 |
---|---|
07. Django from 태그 (0) | 2023.04.16 |
05. Django 템플릿 (0) | 2023.04.10 |
04.5 Django 관리자 (0) | 2023.04.09 |
04.Django 모델 (0) | 2023.04.09 |