Menu
CoddyTech

이름이 지정된 URL

Coddy Django 여정의 Django 기초 섹션에 포함된 레슨. 23개 중 10번째.

홈 페이지에서 About으로 연결해야 합니다. 모든 링크에 "/about/"을 입력하면 주소가 바뀌기 전까지는 작동하지만, 주소가 바뀌면 모든 링크가 깨집니다. 대신 각 경로에 이름을 지정하고 그 이름으로 주소를 만드세요. shop 앱의 urls.py:

app_name = "shop"

urlpatterns = [
    path("cart/", views.cart, name="cart"),
    path("products/<slug:slug>/", views.product, name="product"),
]

app_name은 이름을 네임스페이스에 넣습니다. 전체 이름은 "shop:cart"이므로 두 앱 모두 home을 사용할 수 있습니다. reverse()는 이름을 다시 주소로 바꿉니다. shop을 shop/ 아래에 포함하면 다음과 같습니다.

from django.urls import reverse

reverse("shop:cart")                    # "/shop/cart/"
reverse("shop:product", args=["mug"])   # "/shop/products/mug/"

뷰 안에서 reverse()를 호출하세요. views.py의 맨 위에서 호출하면 경로가 만들어지기 전에 실행됩니다.

"cart/"를 "basket/"으로 바꾸면 이름으로 만든 모든 주소가 그에 따라 바뀝니다.

challenge icon

챌린지

쉬움

홈 페이지를 이름으로 About 페이지에 연결하세요.

  1. menu/urls.py에서 app_name을 "menu"로 설정하고 각 경로의 이름을 해당 뷰와 같게 지정하세요: home, about, hours, contact, table, drink, order.
  2. menu/views.py에서 django.urls로부터 reverse를 가져오세요. home에서 href가 reverse("menu:about")인 About us 링크를 추가하세요.

‘About us’를 클릭하면 About 페이지가 열립니다.

직접 해보기

from django.urls import path

from . import views

urlpatterns = [
    path("", views.home),
    path("about/", views.about),
    path("hours/", views.hours),
    path("contact/", views.contact),
    path("table/<int:number>/", views.table),
    path("drinks/<slug:slug>/", views.drink),
    path("order/", views.order),
]
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Django 기초의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드