DjangoのFBVとCBVを徹底比較!初心者でもわかるビューの基本と選び方
生徒
「DjangoでWebアプリを作るときに、FBVとかCBVって言葉を見たんですが、違いがまったくわかりません…」
先生
「Djangoでは、画面の動きを決める“ビュー”の書き方が2種類あります。それがFBVとCBVです。」
生徒
「パソコンもほとんど触ったことがないんですが、大丈夫でしょうか?」
先生
「大丈夫です。料理のレシピのように、順番に見ていけば必ず理解できます。一つずつ見ていきましょう。」
1. Djangoのビューとは何かを超やさしく解説
Djangoのビューとは、ブラウザからのリクエストに対して、どの画面を表示するか、どんなデータを返すかを決める場所です。スマートフォンでボタンを押したときに、次の画面が表示されますが、その裏側で「次はこの画面を出そう」と判断している役割がビューです。
専門用語で「リクエスト」とはお願い、「レスポンス」とは返事のことです。ビューは、このお願いと返事の仲介役をしています。
2. FBVとは?関数で書くシンプルなビュー
FBVは「Function Based View」の略で、日本語では「関数ベースビュー」と呼ばれます。関数とは、決められた処理をひとまとめにした箱のようなものです。
初心者にとってFBVはとても分かりやすく、上から下に処理を読むだけで何をしているか理解できます。
from django.http import HttpResponse
def hello_view(request):
return HttpResponse("こんにちは、Django!")
この例では、ブラウザでページを開くと「こんにちは、Django!」という文字が表示されます。難しい仕組みはなく、お願いが来たら文字を返す、という単純な流れです。
3. CBVとは?クラスで整理されたビュー
CBVは「Class Based View」の略で、「クラスベースビュー」と呼ばれます。クラスとは、設計図のようなもので、同じ種類の処理をまとめて管理できます。
最初は少し難しく見えますが、機能が増えても整理しやすいのが特徴です。
from django.http import HttpResponse
from django.views import View
class HelloView(View):
def get(self, request):
return HttpResponse("こんにちは、CBV!")
FBVと同じ表示ですが、クラスという箱の中に処理を書いています。getは「画面を表示するときの処理」という意味です。
4. FBVとCBVの考え方の違いを例えで理解
FBVは、紙にその日のやることを一行ずつ書くメモのようなものです。短い内容なら、とても分かりやすいです。
一方CBVは、ノートを章ごとに分けて整理する方法です。最初は準備が大変ですが、後から追加するときに迷いません。
小さなWebページならFBV、大きなWebアプリならCBVが向いていることが多いです。
5. URLとビューのつながりを見てみよう
Djangoでは、URLとビューを結びつけて使います。これをURLルーティングと呼びます。
from django.urls import path
from . import views
urlpatterns = [
path("hello/", views.hello_view),
]
この設定により、helloというURLにアクセスすると、先ほどのFBVが実行されます。住所と行き先を結びつける地図のような役割です。
6. CBVをURLに設定する方法
CBVの場合は、少し書き方が変わりますが、考え方は同じです。
from django.urls import path
from .views import HelloView
urlpatterns = [
path("hello/", HelloView.as_view()),
]
as_viewは「クラスをビューとして使える形にするための準備」と考えると理解しやすいです。
7. 初心者はどちらを使うべきか?
プログラミング未経験であれば、最初はFBVから始めるのがおすすめです。理由は、処理の流れがそのまま読めるからです。
慣れてきて、画面が増えたり、同じような処理が多くなってきたら、CBVの便利さが実感できます。
Djangoでは、FBVとCBVを混ぜて使うこともできるため、無理にどちらか一方に決める必要はありません。
8. FBVとCBVを比較して理解を深めよう
FBVはシンプルで理解しやすく、学習初期に最適です。CBVは少し難しいですが、整理された書き方ができ、実務でよく使われます。
Djangoのビュー基本として、この2つの違いを知っておくことで、Webアプリ開発の全体像が見えてきます。
まずは「画面を表示する役割がビュー」という点をしっかり押さえておくことが大切です。