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はフルスタックフレームワークとして、管理画面や認証機能なども提供しており、さらなる機能拡張も簡単にできます。これを機に、ぜひ自分
のアプリケーションを開発してみてください。