Python | Django | Viewの値をテンプレートに渡す方法

2021年6月19日

公開日: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"に変更し,ブラウザを更新すると,表示は以下になる.

 

以上