Djangoフレームワークを使用してローカルライブラリのウェブサイトを作成するための実践的なガイドを、完全かつ包括的に説明します。この記事はDjangoフレームワークの基本を理解し、実際にプロジェクトを進めるための手順に焦点を当てています。
1. Djangoのインストールとプロジェクトのセットアップ
最初にDjangoをインストールし、プロジェクトを開始するための準備を行います。

1.1. Pythonとpipのインストール
まず、Pythonとpip(Pythonのパッケージ管理ツール)がインストールされていることを確認してください。以下のコマンドをターミナルで実行して、インストールされているか確認します。
bashpython --version pip --version
もし、Pythonがインストールされていない場合は、公式サイトからインストールします。
1.2. Djangoのインストール
次に、Djangoをインストールします。以下のコマンドでDjangoをインストールします。
bashpip install django
インストールが完了したら、Djangoのバージョンを確認します。
bashdjango-admin --version
これで、Djangoのインストールが完了しました。
1.3. プロジェクトの作成
Djangoプロジェクトを作成するには、以下のコマンドを使用します。
bashdjango-admin startproject local_library
これで「local_library」というディレクトリが作成され、その中にDjangoプロジェクトの基本構造が自動的に作成されます。
1.4. サーバーの起動
プロジェクトディレクトリに移動し、開発用サーバーを起動します。
bashcd local_library
python manage.py runserver
ブラウザで http://127.0.0.1:8000
を開き、Djangoのウェルカムページが表示されることを確認してください。
2. アプリケーションの作成
次に、ライブラリ管理のためのアプリケーションを作成します。
2.1. アプリケーションの作成
以下のコマンドで「catalog」というアプリケーションを作成します。
bashpython manage.py startapp catalog
これで「catalog」ディレクトリが作成され、アプリケーションの基本的なファイルが生成されます。
2.2. アプリケーションの登録
作成したアプリケーションをプロジェクトに追加するため、local_library/settings.py
ファイルを開き、INSTALLED_APPS
に「catalog」を追加します。
pythonINSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'catalog', # ここに追加
]
これでアプリケーションがプロジェクトに組み込まれました。
3. モデルの作成
次に、ライブラリのデータベースモデルを作成します。モデルは、ライブラリの本、著者、ジャンルなどのデータを管理します。
3.1. モデルの定義
「catalog/models.py」ファイルを開き、以下のようにモデルを定義します。
pythonfrom django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
date_of_birth = models.DateField(null=True, blank=True)
date_of_death = models.DateField(null=True, blank=True)
def __str__(self):
return self.name
class Genre(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey('Author', on_delete=models.SET_NULL, null=True)
summary = models.TextField(max_length=1000, help_text="Enter a brief description of the book")
isbn = models.CharField('ISBN', max_length=13)
genre = models.ManyToManyField('Genre', help_text='Select a genre for this book')
def __str__(self):
return self.title
このコードでは、以下の3つのモデルを定義しています:
Author
: 著者の名前と生年月日、死亡年月日を管理。Genre
: 本のジャンルを管理。Book
: 本のタイトル、著者、概要、ISBN番号、ジャンルを管理。
3.2. モデルのマイグレーション
モデルを定義した後、データベースに反映させるためにマイグレーションを行います。まず、マイグレーションファイルを作成します。
bashpython manage.py makemigrations
次に、マイグレーションを適用してデータベースを更新します。
bashpython manage.py migrate
これでデータベースにテーブルが作成され、モデルが反映されます。
4. 管理画面の作成
Djangoには強力な管理画面が組み込まれており、データを簡単に管理できます。次に、この管理画面で本、著者、ジャンルを管理できるようにします。
4.1. 管理画面の登録
「catalog/admin.py」ファイルを開き、以下のようにモデルを管理画面に登録します。
pythonfrom django.contrib import admin
from .models import Author, Genre, Book
admin.site.register(Author)
admin.site.register(Genre)
admin.site.register(Book)
4.2. 管理者アカウントの作成
管理画面にアクセスするために、管理者アカウントを作成します。
bashpython manage.py createsuperuser
プロンプトに従って、ユーザー名、メールアドレス、パスワードを設定します。
4.3. 管理画面へのアクセス
サーバーを再起動した後、ブラウザで http://127.0.0.1:8000/admin
にアクセスします。先ほど作成した管理者アカウントでログインし、管理画面から著者、本、ジャンルを管理できます。
まとめ
この記事では、Djangoを使用してローカルライブラリのウェブサイトを作成するための基本的なセットアップと、最初のモデルと管理画面を構築する方法を説明しました。次回は、このサイトにビューを追加し、実際にウェブページを表示する方法を学びます。
次のステップとして、ユーザーインターフェースの作成、テンプレートの設定、フォームの実装、検索機能の追加などを行い、より実践的なウェブサイトを完成させていきます。