Djangoで開発している時にアプリが多くなると、1つのurls.pyに各ルーティングを記載していくとコードが多くなってしまいます。
この改善策として、各アプリのディレクトリにurls.pyを配置し、アプリ内のルーティングは、対象ディレクトリ内のurls.pyを使用することでルーティングを整備することができます。
そのやり方を以下に記載します
プロジェクトのurls.py
django-admin startprojectにて、作成された最初のurls.pyは、以下のように記載します
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')),
]
from django.urls import pathにincludeを記載します
urlpatterns内には、startappコマンドで作成したアプリ名をincludeを使用して記載します。
この場合は、myapp以降のパスがmyapp/urls.pyに記載できるようになります。
アプリ側のurls.py
django-admin startappにて作成されたディレクトリにurls.pyを作成します
そのurls.pyには、以下のように記載します
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index')
]
from . import viewsは、アプリ自体のviews.pyを指します。
urlpatternsの記載は、上記の場合は、http://localhost:8080/myapp/
にアクセスすると
myappのviews.pyのindex関数が実行されるようになります
以上、アプリ別のurls.pyの記載方法でした