Menu
CoddyTech

名前付きURL

CoddyのDjangoジャーニー「Djangoの基礎」セクションの一部。レッスン 10/23。

ホームページから 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" なので、2つのアプリがそれぞれ 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")から取得します。

実行を押して、「私たちについて」をクリックします。

自分で試してみよう

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プレイグラウンド