djangoでTemplateViewを使ってみる

2022年5月3日

djangoでTemplateView

以前は関数ベースで色々やっていたのですが世間はクラスベースと言う事なので、djangoで用意されている色々なクラスについて今後書いていけたらと思います。
今回は基本とされている「TemplateView」についてです。

名前の通りテンプレートの表示に特化した基本汎用Viewでトップ画面やヘルプ画面などの単純なテンプレートを表示するのによく利用されます。

config/urls.py


from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('app/', include('app.urls')),
]

app/urls.py


from django.urls import path
from . import views
app_name = 'app'
urlpatterns = [
        path('', views.index, name='index'),
]

app/views.py


from django.shortcuts import render
from django.views import View
from django.views.generic import TemplateView
class IndexView(TemplateView):
    template_name = 'app/index.html'
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['message'] = 'hello_index_page!!'
        return context
index = IndexView.as_view()

templates/app/index.html


{{message}}

実行結果

http://[IPアドレス]:[PORT]/app/」にアクセスするとしたのような画面が表示されたと思います

YouTube

2022年5月3日