Djangoのリクエスト処理フロー
Djangoのリクエスト処理フローは下記のようになっています。
今回は、ルーティング・ビューだけを使い、ビューの関数に記載した「Hello, World!」を表示する。
フロートしては、ブラウザからのリクエスト→project1.urls→posts.urls→views.indexとなる。
ルーティング(urls.py)
ブラウザからのリクエストを受けたURLパターンとルーティングファイル内に記述されているパターンからどのファイルを呼び出すかを決める。
アプリ内とプロジェクト内でそれぞれ2つのurls.pyが存在し、それぞれがアプリ内とプロジェクト内の動作振り分けを定義している。
ビュー(views.py)
ルーティングで呼び出された関数の動作を返す。
データベースからデータを呼び出す必要があればデータベースへアクセスする記述などを記載する。また、そのデータを必要な形に加工しテンプレートに渡す動作を記述する。
Hello, World!を表示させてみよう!
今回作成したproject1フォルダ内にあるpostsフォルダの中あるviews.pyにリクエストを受けた際にHello, World!を返す関数を記述する。
from django.shortcuts import render
from django.http import HttpResponse #この行を追加
def index(request): #この行を追加
return HttpResponse("Hello, World!") #この行を追加
次に、postsフォルダ内にurls.pyを作成し、アプリ(posts)内での定義を行う。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
最後に、project1フォルダ内のurls.pyを編集していく。
from django.contrib import admin
from django.urls import path,include #includeを追加
urlpatterns = [
path('admin/', admin.site.urls),
path('posts/', include('posts.urls')), #この行を追加
]
サーバーを起動し、「http://127.0.0.1:8000/アプリ名/」(今回の場合posts)にアクセスし、「Hello, World!」が表示されていれば成功です。
テンプレート追加編