Djangoは、Pythonで構築された強力なWebフレームワークで、開発を効率化し、セキュリティやパフォーマンスを保証する設計が特徴です。初心者でもすぐにWebアプリケーション開発を始められるため、人気の高いフレームワークの一つです。本記事では、Djangoを使ったWebアプリケーション開発の基本的な流れをstep-by-step形式で解説します。

Djangoのインストール

Djangoを使って開発を始めるには、まずDjangoをインストールする必要があります。以下のコマンドでインストールできます。

pip install django

インストールが完了したら、Djangoのバージョンを確認してみましょう。

django-admin --version

プロジェクトの作成

Djangoでは、まず「プロジェクト」を作成します。プロジェクトはWebアプリケーション全体の設定や構成を管理するための単位です。以下のコマンドを使って新しいプロジェクトを作成します。

django-admin startproject myproject

これで「myproject」というディレクトリが作成され、その中にいくつかのファイルが生成されます。

開発サーバーの起動

Djangoには開発中に使用する軽量な開発サーバーが内蔵されています。これを使って、アプリケーションの動作をすぐに確認できます。

cd myproject
python manage.py runserver

サーバーが起動すると、http://127.0.0.1:8000/にアクセスすることで、Djangoのデフォルトのウェルカムページが表示されます。

アプリケーションの作成

Djangoでは、プロジェクト内に「アプリケーション」という単位で機能を追加します。アプリケーションは、プロジェクト内の一つの機能や役割を担当する部分です。次のコマンドで新しいアプリケーションを作成します。

python manage.py startapp myapp

これで「myapp」というアプリケーションディレクトリが作成されます。次に、作成したアプリケーションをプロジェクトの設定に追加します。myproject/settings.pyファイルを開き、INSTALLED_APPSにアプリケーションを追加します。

INSTALLED_APPS = [
    # 既存のアプリケーションに加えて
    'myapp',
]

モデルの作成

次に、データベースで管理するデータの構造を定義するためにモデルを作成します。myapp/models.pyに次のようにモデルを定義します。

from django.db import models
class Item(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
    def __str__(self):
        return self.name

ここでは、商品アイテムを管理するためのモデルItemを定義しました。このモデルには、商品名、説明、価格というフィールドが含まれています。

モデルのマイグレーション

モデルを定義した後は、データベースにその変更を反映するための「マイグレーション」を行います。

python manage.py makemigrations
python manage.py migrate

これで、Djangoが自動的に生成したSQLを使って、データベースに必要なテーブルが作成されます。

管理画面の設定

Djangoの強力な特徴の一つは、自動生成される管理画面です。これにより、簡単にデータベースの内容を操作できます。まず、myapp/admin.pyを編集し、作成したモデルを管理画面に登録します。

from django.contrib import admin
from .models import Item
admin.site.register(Item)

次に、管理ユーザーを作成します。

python manage.py createsuperuser

ユーザー名、メールアドレス、パスワードを入力して管理ユーザーを作成したら、開発サーバーを再起動し、http://127.0.0.1:8000/admin/にアクセスします。作成したユーザーでログインすれば、Itemモデルを管理できる画面が表示されます。

ビューの作成

次に、ユーザーにデータを表示するためのビューを作成します。myapp/views.pyに以下のコードを追加します。

from django.shortcuts import render
from .models import Item
def item_list(request):
    items = Item.objects.all()
    return render(request, 'item_list.html', {'items': items})

このビューは、データベース内のすべてのItemオブジェクトを取得し、item_list.htmlというテンプレートにデータを渡します。

テンプレートの作成

次に、データをHTMLとして表示するためのテンプレートを作成します。テンプレートは、Djangoの標準的なHTMLファイルで、動的にデータを表示できます。myapp/templates/item_list.htmlというファイルを作成し、以下のように記述します。

<!DOCTYPE html>
<html>
<head>
    <title>Item List</title>
</head>
<body>
    <h1>Item List</h1>
    <ul>
        {% for item in items %}
            <li>{{ item.name }}: {{ item.price }}円</li>
        {% endfor %}
    </ul>
</body>
</html>

このテンプレートでは、itemsというリストから各Itemの名前と価格を表示します。

URLの設定

最後に、ビューにアクセスできるようにURLを設定します。myapp/urls.pyファイルを作成し、以下のコードを追加します。

from django.urls import path
from . import views
urlpatterns = [
    path('', views.item_list, name='item_list'),
]

さらに、myproject/urls.pyにもアプリケーションのURLをインクルードします。

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

これで、トップページにアクセスしたときにitem_listビューが表示されるようになります。

まとめ

今回のstep-by-stepガイドでは、Djangoを使った基本的なWebアプリケーション開発の流れを紹介しました。プロジェクトの作成から、モデルの定義、ビューとテンプレートの実装、そしてURLの設定まで、Djangoを使ったWebアプリケーション開発の基礎を学びました。Djangoはフルスタックフレームワークとして、管理画面や認証機能なども提供しており、さらなる機能拡張も簡単にできます。これを機に、ぜひ自分 のアプリケーションを開発してみてください。