Python | Django | Viewの値をテンプレートに渡す方法
公開日:2021/6/19
Pythonには,DjangoというWebアプリケーションフレームワークがある.フレームワークのため,Djangoを利用するとWebアプリを通常よりも短時間で開発することが可能になる.
前の記事にて,Djangoにおけるテンプレート(template)を作成および基本的な設定方法を記し,その後,テンプレートのディレクトリの変更方法を記した.前記事に基づく設定をそのまま引き継いだ上で,本記事では,View(アプリ内のviews.py)の値をテンプレートに渡す方法を以下に記す.
◆実施環境
Python 3.8.8
Django 3.2.3
■Viewの値をテンプレートに渡す方法
“tmp_app/views.py"に"context"に辞書型で以下のキーと値を加える.
'greeting_mo’:’Good Morning’,
'greeting_af’:’Good Afternoon’,
'greeting_ev’:’Good Evening’,
編集後の"tmp_app/views.py"は以下になる.
from django.shortcuts import render
def index(request):
return render(request,'index.html',context={ # "context"以降が追記箇所
'greeting_mo':'Good Morning',
'greeting_af':'Good Afternoon',
'greeting_ev':'Good Evening',
})
“tmp_project/templates/index.html"に"<p>{{ greeting_mo }}</p>"を追記する.全体は以下のようなコードになる.
<html>
<head>
<title>This is how to use templates of tmp_project</title>
</head>
<body>
<p>{{ greeting_mo }}</p> # 追記箇所
<h1>Hello World in templates of tmp_project.</h1>
</body>
</html>
“tmp_project/urls.py”は前回編集したので変更することはないが,ブラウザを開く際に”template_app/”が必要なので,現在のコードを以下に記す.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('template_app/',include('tmp_app.urls')),
]
ターミナルを開き,"tmp_project"のディレクトリで"python manage.py runserver"を実行すると,以下が出力される.
System check identified no issues (0 silenced).
June 19, 2021 - 19:19:16
Django version 3.2.3, using settings 'tmp_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
“http://127.0.0.1:8000/"をクリックし,ブラウザを開くと以下のようになる.
ブラウザのURLに"http://127.0.0.1:8000/template_app/"を記入し,ブラウザを開くと今回設定した"Good Morning"が出力される.
“tmp_project/templates/index.html"の"greeting_mo"を"greeting_af"に変更し,ブラウザを更新すると,表示は以下になる.
“tmp_project/templates/index.html"の"greeting_mo"を"greeting_ev"に変更し,ブラウザを更新すると,表示は以下になる.
以上