はじめに
前回はApplicationを作成して、ProjectにApplicationを認識させ、Application内のurlsを設定することで、「リクエスト情報」があったときにViewを呼び出すようにしました。但し、ViewはTemplateを呼び出さずに、直接文字列を「レスポンス情報」として返しました。今回は、ViewからTemplatesを呼び出す方法を学びます。
ViewからTemplateを呼びだす設定を次のステップで進めましょう。
- Templateを呼び出す設定をする
- Templateを作成する
ViewからTemplateを呼び出す
ViewからTemplateを呼ぶには、Applicationのview.pyを編集します。ここでは、start/view.pyにcall_template関数を追記しましょう。
def call_template(request):
template_name = "start.html"
context = {}
return render(request, template_name, context)
template_nameは、Templateの名前を宣言しています。contextは、Templateに渡すパラメータです。パラメータは辞書型で渡します。次に、url.pyでcall_templateを呼び出す設定をします。urls.pyのurlpatternsを編集します。
urlpatterns = [
path('', views.index, name='start_django'),
path('test/temp/', views.call_template, name='call_template'),
]
これは、startというApplicationが呼び出されたあとに、URLにtest/tempという文字列が見つかったら、call_templateという関数が呼び出される設定です。では、次に実際に呼び出されるHTMLを作成しましょう。
Templateを作成する
ここでは、startフォルダの配下にtemplatesフォルダを作り、そこにstart.htmlを作ります。今回はstart.htmlは次のようにしてみましょう。
<!DOCTYPE html>
<html lang="jp">
<head>
<meta charset="UTF-8">
<title>スタートページです</title>
</head>
<body>
<h1>今度はテンプレートを呼び出して表示しています。</h1>
<p>テンプレートを呼び出すことで、あらかじめ定義した書式を呼び出すことができます。</p>
</body>
</html>
これでTemplateの作成ができました。
まとめ
最後にうまくできているか確認しましょう。サーバーを起動して、http://127.0.0.1:8000/start/test/temp/ にアクセスしてみましょう。先ほど作成してstart.htmlが表示されれば、成功です。
コメント