DjangoのTemplateView(テンプレートビュー)開発基礎

BACK END

Hello World.

ごきげんよう!LiSMOtechの久津間です。

 

今回紹介するのはDjangoの開発でよく使われるTemplateView(テンプレートビュー)についてです。

こちらの記事を読むことでTemplateView(テンプレートビュー)を用いた開発基礎が付くため、しっかりとマスターしましょう。

また、こちらに関連記事を記載しておきます。併せて確認してください。

 

 

TemplateView(テンプレートビュー)とは

TemplateViewはクラスベース汎用ビューであり、ページを生成するのに必要な機能が提供されている便利なクラスビューです。

シンプルに扱うことができる上、様々な機能を実装することが可能です。

WEBアプリケーションを開発していくと比較的頻度高く使うことになると思います。

 

どのような場面で利用するのか

クラスベース汎用ビューを使う場合、ブラウザからGETなどで使われるページは主にTemplateView(テンプレートビュー)を利用します。

テンプレートを画面表示するのは勿論ですが、データベースから取得したデータを表示することも可能です。

 

 

テンプレートを指定してシンプルに利用

TemplateViewはテンプレート名を指定して利用します。

以下の例ではindex.htmlのテンプレートを指定しています。

 

・view.py

from django.views.generic import TemplateView

# Create your views here.
class Index(TemplateView):
    template_name = "index.html"

TemplateViewをインポートし、クラスを作成します。

template_nameには作成するテンプレートファイル名を指定します。

 

・urls.py

from django.urls import URLPattern, path
from . import views

urlpatterns = [
    path('', views.Index.as_view(), name='index')
]

 

templates/index.html

 

・表示結果

 

get_context_dataで変数を扱う

続いては、テンプレートファイルに変数を渡して表示をさせていきます。

 

・view.py

from django.views.generic import TemplateView

# Create your views here.

class Index(TemplateView):
    template_name = "index.html"

    # 追加
    def get_context_data(self,**kwargs):
         context = super().get_context_data(**kwargs)
         context["m_txt"] = "DjangoのTemplateView(テンプレートビュー)開発基礎"
         context["s_txt"] = "LiSMOtech株式会社"
         return context

 

クラスベース汎用ビューが持つメソッド「get_context_data」を使用することで、テンプレートに渡す変数を扱うことができます。

また、上記の例では複数の変数を扱っています。

 

 

templates/index.html

 

変数を利用する際は、{{変数名}}で利用することが可能です。

 

・結果

 

まとめ

今回の記事ではDjangoのクラスベース汎用ビューの中でも利用シーンが多いTemplateViewについてご紹介させていただきました。

TemplateViewを使えるようになることで、開発の幅が広がるのかと思います。

是非この機会にしっかりとマスターしておきましょう。

 


ともに考え、寄り添う。プロのデザインチームが即参戦。

販促ツールや一貫したデザインによるブランド構築などビジネスの成長をデザインの力で促進します。

NEXTGATE LiSMOtechでは中小企業を中心にブランディング・WEBマーケティングを活用したWEB戦略を提供しています。

企業課題・問題に関するご相談、WEBサイト制作やグラフィックデザイン制作のクリエイティブに関するご相談やご質問、お見積りなどお気軽にお問い合わせください。

お得な情報がLINEに届く!!

LINE公式アカウントはこちらから。

友だち追加

最新記事

CONTACT

NEXTGATE LiSMOtechでは中小企業を中心にブランディング・WEBマーケティングを活用したWEB戦略を提供しています。
企業課題・問題に関するご相談、WEBサイト制作やグラフィックデザイン制作のクリエイティブに関するご相談やご質問、お見積りなどお気軽にお問い合わせください。

平日10:00〜19:00

お電話の場合こちらから

043-305-4162

平日10:00〜19:00