【Django入門3】アプリケーションの作成とディレクトリ構成を理解しよう

アプリケーションとは

アプリケーションの役割

Djangoでは、Webアプリケーションは複数の「アプリケーション」から構成されます。アプリケーションとは、特定の機能を提供する独立したモジュールです。

プロジェクトとアプリケーションの違い

  • プロジェクト: 複数のアプリケーションを管理する全体の構成。
  • アプリケーション: プロジェクト内で特定の機能を実装するための単位。

例:ブログのプロジェクトには、記事管理のアプリケーション、ユーザー管理のアプリケーションなどがあります。

アプリケーションの作成

アプリケーション作成コマンド

  1. プロジェクトのルートディレクトリに移動します。
  2. 以下のコマンドを実行してアプリケーションを作成します: python manage.py startapp myapp
  3. 正常に作成されると、myappというフォルダが生成されます。

フォルダ構成の確認

作成されたアプリケーションは次のような構造になります:

myapp/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
    migrations/

各ファイルの役割

init.py

  • このファイルによってmyappディレクトリがPythonパッケージとして認識されます。

admin.py

  • Djangoの管理画面でモデルを表示するための設定を行うファイルです。
  • 例:ブログ記事を管理画面から操作する際の設定を記述します。

apps.py

  • アプリケーション設定を管理するファイルです。
  • 通常はデフォルトの設定のままで問題ありませんが、カスタム設定が必要な場合に編集します。

models.py

  • データベースのテーブルを定義するファイルです。
  • データを保存するためにモデルをここに記述し、Djangoが自動的にデータベースに反映します。
  • 例: from django.db import models class BlogPost(models.Model): title = models.CharField(max_length=100) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True)

views.py

  • リクエストを受け取り、レスポンスを返すロジックを記述します。
  • 例:ブログ記事のリストを表示するビューを定義する。 from django.http import HttpResponse def index(request): return HttpResponse("Hello, this is the blog homepage.")

tests.py

  • アプリケーションの単体テストを記述するファイルです。
  • 開発中に正しい動作を検証するためにテストケースを追加します。

migrations/

  • データベースのスキーマ変更を管理するためのファイルが格納されます。
  • モデルを変更した際にマイグレーションを作成することで、データベースを最新の状態に保てます。

アプリケーションの登録

settings.pyへの登録

作成したアプリケーションをプロジェクトで認識させるには、settings.pyファイルにアプリケーションを登録する必要があります。

  1. プロジェクトのsettings.pyを開きます。
  2. INSTALLED_APPSリストに新しいアプリケーションを追加します。 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', # 新しく作成したアプリケーション ]

開発サーバの起動と動作確認

開発サーバの起動

  1. プロジェクトのルートディレクトリで以下のコマンドを実行します: python manage.py runserver
  2. ブラウザで http://127.0.0.1:8000/ にアクセスし、プロジェクトが正常に動作しているか確認します。

アプリケーションの動作確認

  • views.pyで定義したビューにアクセスして、正しいレスポンスが返ってくるか確認します。

まとめ

Djangoでのアプリケーションの作成とディレクトリ構成について理解することは、効率的な開発の第一歩です。各ファイルの役割を把握し、プロジェクトとアプリケーションの関係を理解することで、スムーズにWebアプリケーションの開発を進められます。