アプリケーションの作成
アプリケーションを作成する場合は以下のコマンドで実行します。
python manage.py startapp polls #pollsは任意のアプリケーション名
ここのコマンドで新たにディレクトリが作成されるのでここにメインソースを格納していくことになります。
Djangoのディレクトリの構成として機能(アプリケーション)ごとにディレクトリを作成していくことになります。
viewの作成
DjangoはCMVモデルの考え方を採用していますが一般的なMVCと対応する内容が多少異なりますので注意が必要です。
まず、DjangoではMVCでは無くMVTとよく呼ばれます。
MVTとは
- MはModelの略でデータ操作を実施するプログラム
- VはViewの略でビジネスモデルを記載するプログラムです。
- Tは Templateの略でHTML等の画面部分を構成するプログラムです。(他のMVCで言うところのV(View)に該当します。)
ここで注意が必要なのが他のフレームワーク等でのMVCで言うところのC(コントローラ)はDjangoではT(Template),CはV(View)に該当します。
#polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
次にpollsフォルダにurls.pyを作成します。
#polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
次に先ほど、ルート(mysite)のurs.pyにinclideモジュールを追加して、先ほど作成したposlls/url.pyを読み込ませる設定をします。
#mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
ルートのurls.pyではアプリケーションへ到達させるためのurl設定を記載し、
アプリケーション内のurls.pyにはそのアプリケーション内のurl設定を記載します。
実際にサーバを起動して動作を確認してみましょう
python manage.py runserver 8080
サーバを起動させ、http://localhost:8080/polls/にアクセスすると “Hello, world. You’re at the polls index.” と出力されるのが確認できると思います。
DjangoのURLのマッチの探し方は以下の通りです。
mysiteのurl.pyではpath(‘polls/’, include(‘polls.urls’))で<ルートディレクトリ>/pollsで
polls/urls.pyのURLを参照して<ルートディレクトリ>/pollsから
先のURLをpolls/urls.pyから参照します。