タイトル: 関数ベースviewの作り方とviewの分割
SEOタイトル: djangoの関数ベースview作り方とviewの分割方法
以下、デフォルトのディレクトリ構造
プロジェクト名/ |
デフォルトでは上記のように1アプリケーションに対して1viewしか存在しない。
それを以下のように修正する。
プロジェクト名/ アプリケーション名/ __init__.py |
もともと存在していたviews.pyを削除してviewsディレクトリを作成する。
その中に分割したviewファイル(上記の例では index.py および test.py)と__init__.pyファイルを作成する。
更にアプリケーション名ディレクトリ直下にurls.pyを作成してルーティング処理を記載する。
プロジェクト名ディレクトリ直下のurls.pyを修正する必要もある。
以下、それぞれのファイルの詳細を記述する。
今回のアプリケーション名は「app1」とします。
分割したviewファイル
index.py
from django.http import HttpResponse def page(request): return HttpResponse("index view.") |
test.py
from django.http import HttpResponse def page(request): return HttpResponse("test view.") |
__init__.py
from .index import page from .test import page |
アプリケーション名直下のurls.py
from django.urls import path from . import views urlpatterns = [ path('', views.index.page, name='index'), path('test/', views.test.page, name='test'), ] |
プロジェクト名直下のurls.py
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('app1/', include('app1.urls')), ] |
以上で以下のURLをアクセスすることで異なるviewにアクセスすることができます。
http://127.0.0.1:8000/app1/
http://127.0.0.1:8000/app1/test/