Django超初心者シリーズ

1回 / 全10

【Django入門】Djangoとは?PythonでWebアプリを作る仕組みをわかりやすく解説

2025/06/15に公開

はじめに:Django で Web アプリケーションの世界へ

こんにちは!この記事は「Django 超初心者向けシリーズ」の第 1 回目です。

「Web アプリケーションを作ってみたいけど、何から始めればいいかわからない」
「Python は少し触ったことがあるけど、Web アプリは難しそう」

そんなあなたのために、このシリーズでは Django を使った Web アプリケーション開発を、本当にゼロから丁寧に解説していきます。

僕も最初は同じような不安を抱えていました。でも大丈夫!一緒に学んでいきましょう。

この記事で学べること

  • Web アプリケーションの基本的な仕組み
  • 静的サイトと動的サイトの違い
  • Django(ジャンゴ)とは何か
  • Django の MVT パターンの概念
  • なぜ Django が選ばれるのか

そもそも Web アプリケーションって何?

ブラウザとサーバーの関係を理解しよう

僕たちが普段使っている Web サイトは、実は「ブラウザ」と「サーバー」の間でデータのやり取りをしています。

ブラウザとサーバーの関係

  1. あなたがブラウザの URL 欄に https://www.google.com と入力して Enter を押す

    • これが「リクエスト(要求)」です
    • 「Google のトップページを見せてください!」とお願いしている状態
  2. Google のサーバーがそのリクエストを受け取る

    • サーバーは「了解!トップページのデータを送りますね」と準備
  3. サーバーが HTML や CSS、画像などのデータを送り返す

    • これが「レスポンス(応答)」です
    • 検索ボックスや Google ロゴなどのデータが含まれています
  4. ブラウザが受け取ったデータを画面に表示

    • おなじみの Google 検索画面が表示される!
  • ブラウザ:Chrome、Safari、Firefox など、Web サイトを見るためのソフト
  • サーバー:Web サイトのデータを保管し、要求に応じて送信するコンピュータ

この一連の流れが Web アプリケーションの基本です。

Tip

リクエストレスポンスという言葉は覚えておきましょう!

  • リクエスト : お願い(「このページを見せて」)
  • レスポンス : 返事(「はい、これがそのページです」)

この一連の流れが Web アプリケーションです。単に情報を表示するだけでなく、あなたが何かアクションを起こすと、それに応じて内容が変わるのが特徴です。

静的サイトと動的サイトの違い

Web サイトには大きく分けて 2 種類あります。

静的サイト(Static Site)

  • 誰が見ても同じ内容が表示される
  • HTML ファイルをそのまま表示
  • 例:会社の紹介ページ、個人のポートフォリオサイト
Tip

静的サイトって?

まるで「印刷されたパンフレット」のようなもの。
誰が見ても同じ内容で、変更するには作り直す必要があります。

動的サイト(Dynamic Site)

  • ユーザーや状況によって表示内容が変わる
  • プログラムが動いて HTML を生成
  • 例:Twitter、YouTube、オンラインショッピングサイト
Tip

動的サイトって?

まるで「魔法の本」のようなもの。
読む人や時間によって内容が変わります。
あなたの Twitter のタイムラインは、あなただけのオリジナルですよね!

Django は、この「動的サイト」を作るためのツールです。

Django(ジャンゴ)とは?

Python で作られた Web フレームワーク

Django は、Python というプログラミング言語で作られた「Web フレームワーク」です。

フレームワークとは、簡単に言うと「Web アプリを作るための便利な道具箱」のようなもの。例えるなら:

  • フレームワークなし:材料から家を建てる(土台作り、柱立て、配線工事...全部自分で)
  • フレームワークあり:プレハブ住宅キットで家を建てる(基本構造は用意されている)

Django を使うことで、Web アプリケーションに必要な機能の多くが最初から用意されているため、開発時間を大幅に短縮できます。

Tip

フレームワークという言葉、最初はピンとこないかもしれません。
「便利な道具がたくさん入った箱」くらいに思っておけば大丈夫です!

Django が提供する主な機能

  1. ユーザー認証システム:ログイン・ログアウト機能
  2. データベース操作:データの保存・取得を簡単に
  3. 管理画面:データを管理する画面が自動生成
  4. セキュリティ機能:よくある脆弱性への対策
  5. URL ルーティング:URL とプログラムの紐付け

これらを一から作ると大変ですが、Django なら最初から使えます

例えば、「ユーザー登録機能」を一から作ろうとすると:

  • パスワードを安全に保存する仕組み
  • ログイン状態を管理する仕組み
  • 「パスワードを忘れた」機能
  • メールアドレスの確認機能

...などなど、考えることがたくさん!でも Django なら、これらが最初から用意されているんです。

Djangoの組み込み機能

Django は「batteries included(電池付属)」という哲学を持っています。つまり、Web アプリ開発に必要なものが最初から含まれているということ。他のフレームワークでは追加インストールが必要な機能も、Django なら標準装備です。

Django の MVT パターンを理解しよう

MVT パターンとは?

Django は MVT(Model-View-Template)パターンという設計思想で作られています。

正直、初めて聞くと「なんだか難しそう...」と思いますよね。僕も最初はそうでした!

でも大丈夫。今はなんとなく「こういう仕組みなんだな」と頭の片隅に置いておくだけで OK です。実際にコードを書いていくうちに、自然と理解できるようになります。

DjangoのMVTパターン

具体的な例で説明しますね。「ブログの記事一覧を見たい」というときの流れ:

  1. あなたがブラウザで /blog/ にアクセス

    • 「ブログの記事一覧を見せて!」というリクエスト
  2. URLconf(urls.py)が受け取る

    • /blog/ へのアクセスは、記事一覧を表示する処理(View)に渡そう」と判断
  3. View(views.py)が処理を開始

    • 「記事一覧が必要だから、Model に聞いてみよう」
  4. Model(models.py)がデータベースから記事を取得

    • 「記事のタイトル、本文、投稿日時を全部取ってきたよ」
  5. View が Template にデータを渡す

    • 「この記事データを使って、きれいな HTML を作って」
  6. Template(blog_list.html)が HTML を生成

    • 記事をリスト形式で表示する HTML を作成
  7. 完成した HTML がブラウザに返される

    • あなたの画面に記事一覧が表示される!

それぞれの役割を簡単に見ていきましょう:

Model(モデル)- データの管理者

役割:データベースとのやり取りを担当

  • データの構造を定義
  • データの保存・取得・更新・削除
  • データの検証

:ブログ記事の情報(タイトル、本文、作成日時など)を管理

イメージとしては、「データの倉庫番」みたいなものです。「記事のデータちょうだい」と言われたら、倉庫(データベース)から取ってきてくれます。

View(ビュー)- 処理の司令塔

役割:リクエストを受け取って、レスポンスを返す

  • URL からのリクエストを処理
  • 必要なデータを Model から取得
  • Template にデータを渡す
  • 最終的なレスポンスを作成

:「記事一覧を表示して」というリクエストを受けて、記事データを取得し、表示用の HTML を返す

View は「現場監督」のような存在。どのデータが必要で、どう表示するかを判断して、適切な指示を出します。

Template(テンプレート)- 見た目の担当

役割:HTML の生成

  • View から受け取ったデータを表示
  • HTML の構造を定義
  • 動的な部分と静的な部分を組み合わせる

:記事のタイトルや本文を、見やすいレイアウトで表示

Template は「デザイナー」のような役割。データを受け取って、きれいに見えるように HTML を作ってくれます。

MVC パターンとの違い

他のフレームワークでよく聞く「MVC(Model-View-Controller)パターン」との違いは?

  • MVC:Model、View、Controller
  • MVT:Model、View、Template

Django の View は、MVC の Controller に近い役割を持ち、Django の Template が MVC の View に相当します。名前は違いますが、基本的な考え方は同じです。

Note

MVT とか MVC とか、アルファベットがたくさん出てきて混乱しますよね。
今は「Django は役割分担をしっかりしているんだな」くらいの理解で十分です!
実際に手を動かしながら学んでいけば、必ず理解できるようになります。

なぜ Django が選ばれるのか?

Django の 5 つの強み

  1. フルスタック

    • 必要な機能がほぼ全て含まれている
    • 追加のライブラリをあまり必要としない
  2. セキュリティ重視

    • SQL インジェクション対策
    • クロスサイトスクリプティング(XSS)対策
    • CSRF 対策などが標準装備
  3. スケーラビリティ

    • 小規模から大規模まで対応可能
    • Instagram、Pinterest、Spotify などの大規模サービスでも採用
  4. 充実したドキュメント

    • 公式ドキュメントが非常に詳しい
    • 日本語の情報も豊富
  5. 活発なコミュニティ

    • 世界中に開発者がいる
    • 困ったときに助けを求めやすい

Django が向いているプロジェクト

  • コンテンツ管理システム(CMS)
  • ソーシャルネットワーク
  • E コマースサイト
  • データ分析ダッシュボード
  • 社内業務システム

Django の哲学

Django には「The web framework for perfectionists with deadlines」(締切のある完璧主義者のための Web フレームワーク)というキャッチフレーズがあります。

これは「品質は妥協したくないけど、締切もある」という現実的な開発者のニーズに応えることを表しています。

僕もこの哲学に共感しています。きれいなコードを書きたいけど、納期もある。そんなジレンマを解決してくれるのが Django なんです。

他のフレームワークとの比較

Django vs 他の選択肢

Web フレームワークは他にもたくさんありますが、それぞれに特徴があります。

フレームワーク言語特徴学習難易度
DjangoPythonフルスタック、セキュア、管理画面自動生成
FlaskPython軽量、柔軟、ミニマル
RailsRuby開発効率重視、「設定より規約」
LaravelPHPモダンな PHP、学習リソース豊富
Express.jsJavaScript軽量、シンプル、柔軟性が高い
Nest.jsTypeScriptエンタープライズ向け、Angular 風の構造中〜高
Spring BootJava大規模エンタープライズ向け、堅牢
GinGo高速、軽量、シンプル
Actix-webRust超高速、メモリ安全、並行処理に強い
Note

初心者の方へ:どのフレームワークを選ぶかは、作りたいものと学習目的によります。Django は「しっかりとした Web アプリを作りたい」「セキュリティを重視したい」「Python で開発したい」という方に最適です。最近は Go や Rust も人気ですが、学習曲線が急なので、まずは Python から始めるのがおすすめです。

Python と Django の関係

Python とは?

Python はプログラミング言語の一つです。

特徴

  • 読みやすい文法(英語に近い)
  • 学習しやすい
  • 様々な分野で使われている:
    • Web 開発(Django、Flask)
    • データ分析(Pandas、NumPy)
    • AI・機械学習(TensorFlow、PyTorch)
    • 自動化・スクリプト

Django は Python のフレームワーク

PythonとDjangoの違い

Python と Django の違いは例えるなら

  • Python : 「日本語」
  • Django : 「ビジネス文書の書き方テンプレート」

日本語を使って、ビジネス文書の書き方に従って効率的に文書を作成する、という関係です。

よくある質問

Q1: Python の知識はどのくらい必要?

A: 基本的な文法(変数、関数、クラスの概念)がわかれば始められます。Django を学びながら Python も上達していきます。

もし Python を全く触ったことがない方は、以下の概念だけ先に学習しておくとスムーズです:

  • 変数の宣言(name = "太郎"
  • 関数の定義(def hello():
  • 条件分岐(if文)
  • 繰り返し(for文)

でも、これらがわからなくても大丈夫!僕も Django を始めた頃は、Python の知識もあやふやでした。

Q2: HTML や CSS の知識は必要?

A: 基本的な HTML の知識はあった方が良いですが、このシリーズでは必要な部分を都度説明します。CSS は後から学んでも問題ありません。

Q3: Django は難しい?

A: 最初は覚えることが多く感じるかもしれませんが、パターンを理解すれば、あとは応用です。このシリーズでは、一歩ずつ丁寧に解説していきます。

僕も最初は「設定ファイルが多すぎる!」「MVT って何?」と頭がパンクしそうでした。でも、一つずつ理解していけば、必ずできるようになります。一緒に頑張りましょう!

まとめ

今回は、Django の基本的な概念について学びました:

  • Web アプリケーションは、ブラウザとサーバーの間でデータをやり取りする仕組み
  • Django は、Python で動的な Web サイトを作るためのフレームワーク
  • MVT パターンで、役割を明確に分けて開発する
  • セキュリティや拡張性に優れ、多くの企業で採用されている

正直、今の段階で全部を理解する必要はありません。「へー、そういうものなんだ」くらいの感覚で大丈夫です。

実際に手を動かしていくうちに、「あ、あの時言ってたのはこういうことか!」と理解できる瞬間が必ず来ます。僕もそうでした。

次回予告

次回は、実際に Django をインストールして、開発環境を整えていきます。VSCode の設定も含めて、初心者の方でも迷わないよう、スクリーンショット付きで詳しく解説します。

プログラミングの世界へようこそ!一緒に Django マスターを目指してみましょう!

この記事はいかがでしたか?

もしこの記事が参考になりましたら、
高評価をいただけると大変嬉しいです!

--

皆様からの応援が励みになります。ありがとうございます! ✨

Django超初心者シリーズについて

このシリーズでは、プログラミング初心者の方でもDjangoを使ったWebアプリケーション開発ができるようになることを目標としています。わからないことがあれば、コメント欄でお気軽にご質問ください!