はじめに
ここでは、djangoのURLに関する設定について解説していきます。
プロジェクトのurls.pyの設定
まず、プロジェクトディレクトリ下のurls.py
を以下のように編集します。
プロジェクト名/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('アプリケーション名.urls')),
]
admin/
となっているところは、管理画面へのURLを示しています。
その他のページについては、アプリケーションディレクトリ下のurls.py
に記載するという意味で、include
を使っています。
アプリケーションのurls.pyの設定
アプリケーションディレクトリ下にもurls.py
を作成します。
基本的には、path(URL, view関数(またはクラス), name=逆参照するときの名称)
といった形でpath
関数を記述します。
クラスベースビューを用いる場合
アプリケーション名/urls.py
from django.urls import path
from . import views
app_name = アプリケーション名
urlpatterns = [
path('list/', views.SampleList.as_view(), name='app_list'),
path('create/', views.SampleCreate.as_view(), name='app_create'),
path('detail/<int:pk>', views.SampleDetail.as_view(), name='app_detail'),
path('update/<int:pk>', views.SampleUpdate.as_view(), name='app_update'),
path('delete/<int:pk>', views.SampleDelete.as_view(), name='app_delete'),
]
クラスでviewを指定する場合は、クラス名の後にas_view
メソッドを書きます。
関数ベースビューを用いる場合
アプリケーション名/urls.py
from django.urls import path
from . import views
app_name = アプリケーション名
urlpatterns = [
path('list/', views.list_func, name='app_list'),
path('create/', views.create_func, name='app_create'),
path('detail/<int:pk>', views.detail_func, name='app_detail'),
path('update/<int:pk>', views.update_func, name='app_update'),
path('delete/<int:pk>', views.delete_func, name='app_delete'),
]
まとめ
ここでは、djangoのURL関連の設定について解説しました。
次回はテンプレートについて取り上げる予定です。