• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / Djangoのクラスベース(汎用)ビュー(Class Based View)の概要・一覧と、超基本的な使い方

Djangoのクラスベース(汎用)ビュー(Class Based View)の概要・一覧と、超基本的な使い方

1 クラスベースビューの概要
2 クラスベースビュービューの超基本的な使い方
3 関連記事

ここ記事では、クラスベースビューの利用方法について記載した。
クラスベースビューh関数ビューよりも利用する頻度は高いと思うので、是非参考にされたい。


クラスベースビューの概要

 

1.クラスベースビューって何?

クラスベースビュー(Class Based View)というのは、直訳するとクラスを起点にしたビューという意味である。

関数ベースビューは、views.pyに関数を定義して、urls.pyにてその関数への紐づけていたが、クラスベースビューでは、views.pyにクラスを定義して、urls.pyにて紐づける。

また、クラスには、各ビューのテンプレートがあらかじめ定義されていて、コーディングを簡略できるようにしてある。
(TemplateView, ListViewなど後述)

2.クラスベースビューの種類(公式)


クラスベースビューには種類があり、用途に応じて使用するビューを選択する。

以下に、代表的なクラスベースビューの種類を紹介する。
詳細は、リンク先の画面に移動して確認して頂きたい。

  • Template View(class django.views.generic.base.TemplateView)
概要 URLにキャプチャされたパラメータを含んて、指定されたテンプレートをレンダリングする。
用途
  • 一般的な画面
  • 特にListViewやCreateViewなどを利用する必要のない場合に利用される
  • アプリのトップページなど
  • List View(django.views.generic.list.ListView)
概要 リストを表示するページを作成する

このビューが実行されている間、self.object_listに、ビューが操作しているオブジェクトのリスト(必ずしもクエリセットではない)が含まれる

用途
  • リストページ、一覧ページの作成
  • DetailView(django.views.generic.detail.DetailView)
概要 何らかのデータ(オブジェクト)を表示するように設計されている。多くのプロジェクトでは、最も一般的に使用されるビュー。このビューが実行されている間、self.objectはビューが操作しているオブジェクトを含む。
用途 何らかのオブジェクト(モデル等)からデータを取得して画面に表示する。TemplateViewは、一般的にはトップページに利用されるのに対し、DetailViewは詳細ページに利用される
  • CreateView(django.views.generic.edit.CreateView)
概要 オブジェクトを作成するためのフォームを表示し、バリデーションエラーがある場合はそのフォームを再表示し、オブジェクトを保存するビュー。
用途 ページ上にフォーム表示し、フォームの値が有効なときにDBへ挿入を行う必要がある場合
  • Form View(django.views.generic.edit.FormView)
概要 フォームを表示するビュー。エラーが発生した場合、バリデーションエラーでフォームを再表示する。検証が成功した場合は、新しいURLにリダイレクトする。
用途 ページ上にフォームを表示、有効なフォームが送信されたときに特定のアクションを実行したいときに使用する。(例:お問い合わせフォームを持っていてフォーム送信時にEメールを送信する等)

フォームの送信時にデータベースにモデルインスタンスを挿入する場合には、CreateViewを利用する。FormViewはFormを送信して、何らかの処理を行うときに利用する。

  • UpdateView(django.views.generic.edit.UpdateView)
概要 既存のオブジェクトを編集するためのフォーム。バリデーションエラーがある場合はフォームを再表示し、オブジェクトへの変更を保存する。これは、オブジェクトのモデルクラスから自動的に生成されたフォームを使用する(フォームクラスを手動で作成している場合を除く)。
用途 オブジェクト(データ)の編集画面
  • DeleteView(django.views.generic.edit.DeleteView)
概要 確認ページを表示し、既存のオブジェクトを削除するビュー。与えられたオブジェクトはリクエストメソッドがPOSTの場合のみ削除される。このビューがGETで取得されると、同じURLにPOSTするフォームを含む確認ページが表示される。
用途 オブジェクト(データ)を削除するページ


クラスベースビュービューの超基本的な使い方

クラスベースビュービューの超基本的な使い方として、全ビューのView(django.views.generic.base.View)クラスを継承したビューの作成方法を以下に記述した。

まず、views.pyは以下のように記述する。

  • views.py
from django.views.generic.base import View
from django.http import HttpResponse

class CBView(View):

    def get(self, requet):
        return HttpResponse("CLASS BASED VIEW")

次にurls.pyは以下のようにクラス名.as_view()と記述する。

  • urls.py
from django.contrib import admin
from django.urls import path
from basic_app import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.CBView.as_view(), name='index')
]

Djangoを立ち上げ、画面にアクセスすると以下のように表示される。

以上、超簡単なClassBaseViewの使い方について記載したが、
次回以降より具体的にTemplateView,CreateView,DetailViewなどについて1つ1つ詳述していきます。

関連記事

現役エンジニアがDjangoに関する本を5つ紹介
現役エンジニアがDjangoに関する本を5つ紹介
WindowsでDjango、Anaconda、VSCodeのインストールとDjangoを開発する環境の構築をする
WindowsでDjango、Anaconda、VSCode…
MacでDjango、Anaconda、VSCodeのインストールとDjangoを開発する環境の構築をする
MacでDjango、Anaconda、VSCodeのインス…
DjangoのFormに初期値を設定する方法
DjangoのFormに初期値を設定する方法
DjangoでModelのsave前後で処理を行うSignalのpre_save, post_saveの使い方
DjangoでModelのsave前後で処理を行うSigna…
DjangoのModelにSlugFieldを利用する。その利用方法と
DjangoのModelにSlugFieldを利用する。その…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 クラスベースビューの概要
2 クラスベースビュービューの超基本的な使い方
3 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約