Python | Django | Viewに値を渡し,テンプレートを利用したページ遷移方法
公開日:2021/6/24
Pythonには,DjangoというWebアプリケーションフレームワークがある.フレームワークのため,Djangoを利用するとWebアプリを通常よりも短時間で開発することが可能になる.
前記事にて,テンプレートを利用したページ遷移方法を記した.前記事での設定をそのまま引き継いだ上で,本記事では,「Viewに値を渡し,テンプレートを利用したページ遷移方法」を記す.
◆実施環境
Python 3.8.8
Django 3.2.3
■View(views.py)に値を渡し,テンプレートを利用したページ遷移方法
“tmp_project/templates"に"home.html"を作成する."tmp_project"全体の構成は以下のようになる.
“tmp_project/templates/chocolate.html"を以下のように編集する.前回の記事では"index"を利用した箇所を"home"に変更し,以下2つの変数を追加した.
choco_name = 'Pocky’
choco_maker = 'Glico’
<a href="{% url 'tmp_app:home' choco_name='Pocky' choco_maker='Glico' %}">home</a>
“tmp_app/urls.py"に"home"の"path"を追記する."urls.py"全体の内容は以下のようになる.
from django.urls import path
from . import views
app_name = 'tmp_app'
urlpatterns = [
path('',views.index,name='index'),
path('home/<choco_name>/<choco_maker>',views.home,name='home'), # 追記箇所
path('sub1',views.sub1,name='sub1'),
path('sub2',views.sub2,name='sub2'),
path('chocolate',views.chocolate,name='chocolate')
]
“tmp_app/views.py"に以下home関数を追記する.
def home(request, choco_name, choco_maker):
msg = f'Hello {choco_name} and {choco_maker} from Home'
return render(request,'home.html',context={'msg':msg})
“tmp_project/templates/home.html"には以下のみ記述する.
{{ msg }}
ターミナルを開き,”conda activate 仮想環境名”を実行し,仮想環境に移行する.”tmp_project”のディレクトリで”python manage.py runserver”を実行すると,以下が出力される.
System check identified no issues (0 silenced).
June 24, 2021 - 17:56:27
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/chocolate”を入力し,ブラウザを開くと,”chocolate.html”に記述した内容が以下のように出力される.以下”home”をクリックする.
上記の”home”をクリックすると,”http://127.0.0.1:8000/template_app/home/Pocky/Glico”に遷移する."chocolate.html"で設定した2つの変数(“choco_name", “choco_maker")の値である"Pocky"と"Glico"がブラウザに出力され,URLにも利用されている.
以上