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にマッチした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に任せています。
第一引数に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')),
]