mei_13のPython講座 ロゴ

【解説】Pythonの強力なフレームワーク「Django」でWeb開発の第一歩を踏み出そう




Pythonの強力なフレームワーク「Django」でWeb開発の第一歩を踏み出そう


Yukiのアイコン
【Yuki】 Hirokiくん、こんにちは。今日はPythonを使ったWeb開発について、一緒に勉強していきましょうか。 今回お話しするのは、「Django(ジャンゴ)」というフレームワークについてです。少し難しいかもしれませんが、ゆっくり説明しますね。


Hirokiのアイコン
【Hiroki】 Yukiさん、よろしくお願いします!Djangoですね。名前は聞いたことがありますが、具体的にどんなことができるのか、他のフレームワークと何が違うのか気になっていました。


Yukiのアイコン
【Yuki】 そうですね、Djangoは一言で言うと「フルスタックフレームワーク」と呼ばれています。 Webサイトを作るために必要な機能が最初からほとんど揃っているんです。 開発者が一から全てを作る必要がないので、「電池付属(Batteries Included)」という哲学で作られているんですよ。 複雑なシステムも、Djangoを使えば比較的短い時間で形にできる……かもしれません。


Hirokiのアイコン
【Hiroki】 「電池付属」って面白い表現ですね。最初から何でも入っているから、すぐに動かせるということでしょうか?


Yukiのアイコン
【Yuki】 はい、その通りです。例えば、ユーザーのログイン機能や管理画面、データベースとの連携といった、どんなWebアプリでも必要になる機能が、標準で組み込まれているんです。 これらを自分で作ろうとすると大変ですが、Djangoなら設定を少し変えるだけで使えてしまいます。 少し、具体的な中身についても見ていきましょうか。

Djangoの根幹を支える「MTVモデル」


Yukiのアイコン
【Yuki】 Djangoを理解する上で一番大切なのが、「MTV」という考え方です。 これは、プログラムの役割を3つのパーツに分ける仕組みのことですね。


Hirokiのアイコン
【Hiroki】 MTV……音楽番組の名前みたいですね。それぞれどんな意味があるんですか?


Yukiのアイコン
【Yuki】 ふふ、そうですね。でもDjangoでは、Model(モデル)、Template(テンプレート)、View(ビュー)の頭文字なんです。

  1. Model (モデル): データベースの構造を定義します。データがどんな形をしているかを決めるところですね。
  2. Template (テンプレート): ブラウザに表示される画面の見た目を担当します。主にHTMLで書かれます。
  3. View (ビュー): ユーザーからのリクエストを受け取って、どのデータを表示するか、どんな処理をするかを決める「司令塔」のような役割です。


Hirokiのアイコン
【Hiroki】 なるほど。役割分担がしっかり決まっているから、大きなプロジェクトでも混乱しにくいんですね。


Yukiのアイコン
【Yuki】 はい。この構造があるおかげで、コードが整理されてメンテナンスがしやすくなるんです。 ちょっと控えめに言っても、とても合理的な設計だと思います……。

Djangoの開発環境を整える


Yukiのアイコン
【Yuki】 では、実際にDjangoを使うための準備をしてみましょうか。 まずは、Pythonがインストールされている環境で、Djangoをインストールします。 仮想環境を作ってから作業するのが、お行儀が良くておすすめですよ。


Hirokiのアイコン
【Hiroki】 仮想環境ですね。プロジェクトごとにライブラリを分けられるから、他の開発に影響を与えなくて済むんですよね。


Yukiのアイコン
【Yuki】 その通りです。さすがHirokiくん、よく知っていますね。 以下の手順でコマンドを打ってみてください。

# プロジェクト用のフォルダを作成して移動
mkdir myproject
cd myproject

# 仮想環境を作成して有効化
python -m venv venv
source venv/bin/activate  # Windowsの場合は venv\Scripts\activate

# Djangoをインストール
pip install django


Hirokiのアイコン
【Hiroki】 インストールできました!次はどうすればいいですか?


Yukiのアイコン
【Yuki】 次は、Djangoのプロジェクトを作成します。 Djangoには専用のコマンドがあって、それを実行するだけで必要なファイルが自動的に生成されるんです。

# プロジェクトの作成
django-admin startproject config .


Yukiのアイコン
【Yuki】 これで、基本的な構成が出来上がりました。 一度、この状態でWebサーバーを起動してみましょうか。

python manage.py runserver


Yukiのアイコン
【Yuki】 ブラウザで http://127.0.0.1:8000/ にアクセスしてみてください。 ロケットのアイコンが表示されたら成功です。


Hirokiのアイコン
【Hiroki】 あ、動きました!「The install worked successfully!」って出ています。 まだ何も書いていないのに、もうWebサイトとして動いているなんて驚きです。

Djangoの強力な機能「管理画面」


Yukiのアイコン
【Yuki】 Djangoのすごいところはここからなんです。 特別なプログラミングをしなくても、データベースの中身を操作できる「管理画面」が最初から用意されているんですよ。


Hirokiのアイコン
【Hiroki】 管理画面が最初から?それは便利そうですね!


Yukiのアイコン
【Yuki】 はい。まずはデータベースのセットアップ(マイグレーション)と、管理者のアカウント作成を行ってみましょう。

# データベースの初期設定
python manage.py migrate

# 管理者の作成
python manage.py createsuperuser


Yukiのアイコン
【Yuki】 ユーザー名やメールアドレス、パスワードを聞かれるので、忘れないように入力してくださいね。 入力が終わったら、もう一度 runserver をして、URLの末尾に /admin/ をつけてアクセスしてみてください。


Hirokiのアイコン
【Hiroki】 ログイン画面が出てきました!さっき作ったアカウントでログインしてみます。 ……すごい、ユーザーの管理とかがGUIでできるようになっていますね。


Yukiのアイコン
【Yuki】 そうなんです。本来なら何日もかかるような管理システムの構築が、数分で終わってしまいます。 これも「電池付属」の恩恵ですね。

最新のAI API(Gemini)を組み込んでみる


Yukiのアイコン
【Yuki】 せっかくなので、最近のトレンドも取り入れてみましょう。 Djangoの中で、AIのAPIを使って何か答えてくれる機能を作ってみるのはどうでしょうか。 今回はGoogleの最新AIモデル、「Gemini 1.5 Flash」をDjangoから呼び出してみましょう。


Hirokiのアイコン
【Hiroki】 最新のAIですね!楽しそうです。どうやって連携させるんですか?


Yukiのアイコン
【Yuki】 まずは、Googleが提供している最新のライブラリ google-genai をインストールしましょう。 これを使うと、非常に簡単に最新のモデルにアクセスできるんです。

pip install google-genai


Yukiのアイコン
【Yuki】 次に、views.py というファイルに、AIに質問を送る処理を書いていきます。 例えば、こんな風に書くことができます。

from django.shortcuts import render
from google import genai
import os

def chat_view(request):
    response_text = ""
    if request.method == "POST":
        user_input = request.POST.get("user_query")

        # クライアントの初期化
        client = genai.Client(api_key="YOUR_API_KEY")

        # 最新モデル「gemini-1.5-flash」を使用して回答を生成
        response = client.models.generate_content(
            model="gemini-1.5-flash",
            contents=user_input
        )
        response_text = response.text

    return render(request, "chat.html", {"response": response_text})


Hirokiのアイコン
【Hiroki】 意外とシンプルですね!client.models.generate_content という部分でAIと通信しているのがわかります。


Yukiのアイコン
【Yuki】 そうなんです。APIキーを取得して設定すれば、Djangoから簡単にAI機能を呼び出せるようになります。 このように、「外部の高度な機能と組み合わせやすい」のもDjangoがプロの開発現場で選ばれる理由の一つかもしれません。

Djangoを学ぶためのヒント


Hirokiのアイコン
【Hiroki】 Djangoって、覚えることは多いけれど、その分できることがすごく広がるフレームワークなんですね。


Yukiのアイコン
【Yuki】 はい。最初はディレクトリ構造や設定ファイルの多さに戸惑うこともあるかと思います。 でも、一度慣れてしまうと、これほど頼もしい味方はいない……と私は思います。

学習を続けるなら、公式サイトのチュートリアルがとても充実しているので、ぜひ読んでみてください。 Django ドキュメント | はじめての Django アプリ作成

また、最新のAIライブラリについてはこちらのドキュメントが参考になります。 Google GenAI SDK


Hirokiのアイコン
【Hiroki】 ありがとうございます!まずは簡単な掲示板アプリから作ってみて、そこにAIの機能を載せていけるように頑張ります。


Yukiのアイコン
【Yuki】 その意気です。一歩ずつ進んでいけば、きっと自分だけの素敵なWebアプリが作れるようになりますよ。 あ……もうこんな時間ですね。 私は夜の方が集中できるタイプなので、これからもう少し自分のプログラムをいじろうかな、なんて思っています。 Hirokiくんは、無理せず休んでくださいね。


Hirokiのアイコン
【Hiroki】 はい!Yukiさんも、あまり夜更かししすぎないようにしてくださいね。今日はありがとうございました!


Yukiのアイコン
【Yuki】 ふふ、心配してくれてありがとうございます。 それでは、また次の機会に。お疲れ様でした。



< Graphviz
コラム一覧に戻る
複数の戻り値 >

この記事では基礎を解説しましたが、実務においては「もっと複雑なデータを扱いたい」「独自のシステムに組み込みたい」といった、個別の課題に直面することも多いはずです。

「自分で書く時間は最小限に抑え、プロの品質でツールを完成させたい」という方は、ぜひ一度ご相談ください。

「教わる」だけでなく「形にする」パートナーとして、フリーランスエンジニアのmei_13が最短ルートでの解決をサポートします。

➡ ココナラで制作・相談を依頼する(見積もり無料)


初心者から始められるPythonレッスン

プログラミング未経験者・初心者歓迎!
月額4,000円で質問し放題!!
● 完全オンライン
● 翌日までには必ず返信
● 挫折しない独自の学習メソッド
● 圧倒的高評価!!
テキストベースで時間を選ばない
● 高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!



AIアシスタント Yuki