Menu
CoddyTech

이름이 지정된 URL

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

홈 페이지는 소개 페이지로 연결되어야 합니다. 모든 링크에 "/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/ 아래에 포함된 경우는 다음과 같습니다.
reverse("shop:cart")                    # "/shop/cart/"
reverse("shop:product", args=["mug"])   # "/shop/products/mug/"

"cart/"를 "basket/"으로 바꾸면 이름으로 만든 모든 주소에 변경 사항이 반영됩니다.

challenge icon

챌린지

쉬움
  • menu/urls.py에서 app_name = "menu"을 설정하고 모든 경로에 이름을 지정하세요: home, about, hours, contact, table, drink, order.
  • 홈 페이지에서 문단 뒤에 링크 <a href="...">About us</a>를 추가하세요. 링크 주소는 reverse("menu:about")에서 가져옵니다.

실행을 누른 다음 About us를 클릭하세요.

직접 해보기

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 플레이그라운드