Agile育成ブログ
未来を変える喜びを
Django

urls.py


Warning: count(): Parameter must be an array or an object that implements Countable in /home/xs638785/agile-software.site/public_html/wp-content/plugins/rich-table-of-content/functions.php on line 490

urls.pyについて

views.pyファイルに対して指示を出します。

URLディスパッチャ

リクエストされたURLにマッチしたView関数を探して呼び出す役割を持っています。
もし、マッチするViewがなかった場合は404.htmlテンプレートを表示する仕組みになっています。

‘admin/’を指定しているpath()では、URLが「admin/」の場合に、管理画面(admin.site.urls)を返す(ブラウザに表示する)ように設定しています。

プロジェクト全体のurls.py(mySite/urls.py)のurlpatternsには、アプリケーションを追加するときにだけ、新しいpath()を追加しましょう。

アプリケーションに新しいデザインのページを追加する場合は、アプリケーションごとのurls.py(myapp/urls.py)のurlpatternsに新しいpath()を追加する

include関数を使ってアプリケーションごとのurls.pyを読み込んでいます。これにより、「/accounts/」で始まるURLパターンのすべてを「accounts」アプリケーションのaccounts/urls.pyに「/shop/」で始まるURLパターンのすべてを「shop」アプリケーションのshop/urls.pyに任せています。

まとめ
urlpatternsにおけるpath

第一引数にURLパターンを指定し、第二引数にはURLパターンにマッチするView関数を記述します。
nameを指定する理由はURLを逆引きするためにURLのパターンに名前を付けています。

  • (‘admin/’, admin.site.urls)
  • (‘shop/<int:book_id>/’, shop_view.detail, name=’shop_detail’)

・adminはブラウザに「IPアドレス/admin」と入力されたら右側の処理を行う
・admin.site.urlsはviews.pyファイルの中で定義したclassを指定する。
・2つ目のpathについてもindexがrequestされたら
include(‘myapp.urls’, namespace=’myapp’)が実行されます。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', include('myapp.urls', namespace='myapp')),
]

You cannot copy content of this page