Python | Django | テンプレートにおけるインスタンスメソッドの使い方

公開日:2021/6/25

Pythonには,DjangoというWebアプリケーションフレームワークがある.フレームワークのため,Djangoを利用するとWebアプリを通常よりも短時間で開発することが可能になる.

前記事にて,「テンプレートにおける静的ファイルの使い方」を記した.前記事での設定をそのまま引き継いだ上で,本記事では,「テンプレートにおけるインスタンスメソッドの使い方」を記す.

◆実施環境

Python 3.8.8
Django 3.2.3

■テンプレートにおけるインスタンスメソッドの使い方

“tmp_app/views.py"の下部にクラスを追記する.

class Cake:

  def __init__(self,name,country,maker,material):
    self.name = name
    self.country = country
    self.maker = maker
    self.material = material

def monblanc(request):
  cake = Cake('Mont Blanc','France','Angelina','chestnut')
  return render(request,'monblanc.html',context={
    'cake':cake
  })

“tmp_project/templates"に"monblanc.html"を作成する.作成後のプロジェクトフォルダの構成は以下になる.

“monblanc.html"は以下のように編集する.

Cake name (ケーキ名): {{ cake.name }}<br>
Birthplace (発祥の国): {{ cake.country }}<br>
Origin store (発祥店): {{ cake.maker }}<br>
Material (原材料): {{ cake.material }}(栗)

“tmp_app/urls.py"に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'),
  path('monblanc',views.monblanc,name='monblanc'), # 追記箇所
]

ターミナルを開き,”conda activate 仮想環境名”を実行し,仮想環境に移行する.”tmp_project”のディレクトリで”python manage.py runserver”を実行すると,以下が出力される.

System check identified no issues (0 silenced).
June 25, 2021 - 16:41:49
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/monblanc”を入力し,ブラウザを開くと,"monblanc.html"に記載した内容が以下のように出力される.

以上