【個人開発】Djangoとは何か?初心者のための基本とサンプルコードを図解しながら実装する

こんにちは!前回はGoogle Cloud Shellを使ったPython開発環境の準備をしました。

今回は「Django(ジャンゴ)」について初めての方にもわかりやすく解説します。

Djangoって何?

Djangoの基本概念

Django(ジャンゴ)は、Webサイトやアプリを簡単に作るためのPythonのフレームワークです。

フレームワークとは、家を建てるときの「骨組み」のようなもので、最初から便利な機能がたくさん用意されています。

例えると…

  1. Webサイト作りたい!でも一から全部作るのは大変…
  2. そんなとき「Django」を使うと、基本的な部品が最初から揃っている
  3. 家具や壁紙を選ぶ感覚で、自分だけのサイトが作れる

なぜDjangoが人気なの?

  1. 簡単に始められる : Pythonという読みやすい言語で書けます
  2. 安全性が高い : セキュリティ対策がデフォルトで組み込まれています
  3. 管理画面が自動生成 : データ管理のための画面が自動で作られます
  4. 拡張性 : 小さなブログから大規模サイトまで対応できます

Djangoで何ができるの?

Djangoを使うと、例えば以下のようなWebサービスが作れます。

  1. ブログサイト
  2. ECサイト(ネットショップ)
  3. 社内業務システム
  4. ToDoリスト管理アプリ
  5. SNS(交流サイト)

今回のシリーズでは、簡単なアプリを作りながら、Djangoの基本を学んでいきます。

Djangoの仕組み

Djangoは「MVT」という構造で動いています。難しく考えなくて大丈夫です!

まずは簡単な図と、以下の説明文を簡単に読んでイメージを掴んでいただければと思います。

MVTについて
  1. 【M(Model・モデル)】
  2. データの保存方法を決める部分
    – 例:ToDoリストの「タスク名」「期限」「完了したかどうか」などの情報

  3. 【V(View・ビュー)】
  4. 処理や計算をする部分
    – 例:「新しいタスクを追加する」「タスク一覧を表示する」などの機能

  5. 【T(Template・テンプレート)】
  6. 画面の見た目を作る部分
    – 例:ToDoリストを表示するHTMLページのデザイン

これら3つの部品を組み合わせることで、Webアプリが完成します。それぞれが役割分担しているので、修正や機能追加も簡単です!

禄太
補足になりますが、図の中に記載されいてる [urls.py] は、どのURLがどのView関数を呼ぶか定義しURLとViewを結びつける役割をしています。

Djangoプロジェクトを作ってみよう:Hello First App

説明だけでは分かりにくいので、実際に手を動かしてみましょう。

仮想環境の作成

複数のプロジェクトで異なるバージョンのライブラリを使う場合に備えて、Pythonでは「仮想環境」を使うのがベストプラクティスです。以下のコマンドで仮想環境を作成・有効化します。

# プロジェクト用のディレクトリを作成
mkdir my_django_app
cd my_django_app

# 仮想環境を作成
python3 -m venv venv

# 仮想環境を有効化
source venv/bin/activate

仮想環境が有効になると、ターミナルのプロンプトの前に (venv) と表示されます。これで、このプロジェクト専用のPython環境が準備できました!

ここまでの完了要件①
  1. [仮想環境を作成]により、[my_django_app] 配下に、関連ファイルが作成されていること。
  2. [仮想環境を有効化]により、仮想環境が立ち上がること。

過去、Anacondaでも同様の動作を確認しておりますが、今回はvenvを利用したいと思います。

Djangoをインストール

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

# Djangoのバージョンを確認(正常にインストールできたか確認)
django-admin --version
禄太
バージョン番号(例:私の場合は、5.2)が表示されたら、インストール成功です!

プロジェクトの作成

まず、プロジェクトを作成しましょう。

以下のコマンドを実行すると、「helloproject」という名前のプロジェクトが作成されます。

最後のドット(.)は「現在のフォルダに作成する」という意味です。

# プロジェクトを作成
django-admin startproject helloproject .

アプリケーションの作成

Djangoでは、プロジェクトの中に「アプリケーション」という単位で機能を分けます。

メッセージを表示するシンプルなアプリケーションを作成します

# アプリケーションを作成
python manage.py startapp firstapp
ここまでの完了要件②
  1. [# Djangoをインストール]により、[Django] がインストールされバージョンが確認できた。
  2. [# プロジェクトを作成]により、[Djangoプロジェクト] が作成できた。
  3. [# アプリケーションを作成]により、[firstappプロジェクト] が作成できた。

プロジェクト構成の確認

ターミナルで以下のコマンドを実行しましょう。

ls -la

# 表示されるファイル / フォルダ
manage.py          # Djangoの管理コマンドを実行するファイル
helloproject/      # プロジェクトの設定フォルダ
firstapp/          # 作成したアプリのフォルダ
venv/              # 仮想環境フォルダ
禄太
ls コマンドは 「list(一覧表示)」のことです。
カレントディレクトリ(自分が今いるフォルダ)の中のファイルやフォルダを表示する基本コマンドです。
これには、オプション(-la の部分)をつけることができます。

-l : 詳細な情報(パーミッション、所有者、サイズなど)を表示
-a : all(すべて)「.(ドット)」で始まる隠しファイルも表示

ファイルとフォルダの構成が表示されます。

アプリケーションの登録

作成したアプリケーションをプロジェクトに登録します。

VSCodeエディタで [helloproject/settings.py] を開き、INSTALLED_APPS リストに[‘firstapp’,]を追加しましょう。

禄太
django. ではじまるところは標準で記載されているものです。修正しないようにしてください。
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'firstapp',  # この行を追加
]

URLの設定

プロジェクトのURLファイルを編集します。[helloproject/urls.py] を開き、以下のように変更します

from django.contrib import admin
from django.urls import path, include
from firstapp.views import hello_world  # 追加

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', hello_world, name='hello_world'),  # 追加:トップページにhello_world関数を設定
]
禄太
[プロジェクトのURLファイル] と記載したのには訳があります。今後アプリケーション側のフォルダにも[urls.py] ファイルを作成するため、混同を避けるために明示しました。

補足

デフォルトで以下の記載があるのですが、これは削除してしまって構いません。

"""
URL configuration for helloproject project.

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/5.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""

ビューの作成

続いて、「Hello First App」というメッセージを表示するビューを作成します。

[firstapp/views.py ]を開き、以下のコードを入力します。

from django.http import HttpResponse

# シンプルに文字列を返す関数
def hello_world(request):
    return HttpResponse("<h1>Hello First App!</h1><p>これが最初のDjangoアプリです。</p>")
禄太
この例では、HTMLテンプレートファイルを使わずに、直接HttpResponseでHTMLを返しています。シンプルさを重視した初めてのアプリには最適です。

アプリを実行してみよう

全てが完了したら、アプリを起動してみましょう。

python manage.py migrate  # 初回実行時に必要なデータベース設定
python manage.py runserver 8080

Google Cloud Shellの「ウェブプレビュー」ボタン(右上の「ポートの横にある」アイコン)をクリックし、ポート8080を選択すると、ブラウザで「Hello First App!」というメッセージが表示されます。

これで、あなただけのDjangoアプリが動きました!最小限の設定だけで、Webアプリケーションが動作することが確認できたと思います。

おめでとうございます!

これで、Django を使った最初の Web アプリケーションが完成しました!非常にシンプルですが、以下の重要な要素を学びました。

ここまでの完了要件③
  1. [URLの設定]により、[ルーティング]が設定できた。
  2. [ビュー関数の作成]により、[基本的なレスポンス] が作成できた。
  3. [migrate / runserver]により、[バックエンド側]の基本設定が完了した。
  4. [画面表示]により、[firstappプロジェクト] がブラウザに表示された。

これが Django の基本的な使い方の第一歩です。今回作成したのはとても単純なアプリですが、これをベースに機能を追加していくことで、様々な Web アプリケーションを開発することができます。

次のステップ

このシンプルなアプリを発展させるには、以下のようなステップが必要になります。

  • HTMLテンプレートを使ってより高度な表示を行う
  • CSSでデザインを整える
  • フォームを追加してユーザー入力を受け付ける
  • データベースと連携してデータを保存・表示する

次回以降の記事では、これらの機能を一つずつ追加していく方法について説明していきます。段階的に機能を追加していくことで、Django の理解が深まり、より複雑なアプリケーションも開発できるようになります。

Django を使えば、プログラミング初心者でも、驚くほど短時間で実用的な Web アプリケーションを作ることができます。IT 部門でなくても、業務効率化のためのツールを自分で作れるようになれば、大きな武器になりますね!

次回をお楽しみに!