テンプレート
現状、/posts/へアクセスするとurls.pyが呼び出され、views.pyから「Hello, World!」を直接返して表示する処理を記載しています。ここでテンプレートを作成し、それを表示させるようにします。
テンプレートを追加
これからテンプレートを作成しviews.pyを書き換え、ルーティング→ビュー→テンプレートという処理に変更していきます。
まずは、アプリケーションフォルダ(今回は「posts」フォルダ)に「templates」フォルダを作成し、さらにその中にアプリケーションフォルダと同じ名前のフォルダを作成します。
※Djangoのルールとしてtemplatesフォルダ内にアプリケーションフォルダと同じ名前のフォルダが必要。
次にtemplates内のpostsフォルダにHTMLファイルを作成します。
<!DOCTYPE html>
<html lang="ja-jp" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h2>テストページです。</h2>
</body>
</html>
さらに、作成したHTMLファイルを表示するためviews.pyを修正します。
def index(request):
#return HttpResponse("Hello, World!") ←ここをコメントアウト
return render(request, 'posts/index.html') #新しく追加した行
こうすることで、views.pyが呼び出されたとき直接「Hello, World!」を返さず、templates内にあるpostsフォルダのindex.htmlを参照して返すことができます。
Djangoサーバーを立ち上げて「http://127.0.0.1:8000/posts/」で表示すると下記のようになります。