Djangoアプリケーション入門
アプリ作成と処理の流れ
Djangoアプリケーションの作成方法、フォルダ構成、リクエスト処理の流れを解説します。
こんな人向けの記事です
- Djangoでアプリケーションを作成したい人
- 各ファイルの役割を理解したい人
- Djangoのリクエスト処理の流れを知りたい人
Step 1アプリケーションの作成
Djangoでは、プロジェクトの中に複数のアプリケーションを作成して機能を分割します。アプリケーションは以下のコマンドで作成します。
python manage.py startapp myapp
指定した名前のフォルダが作成され、中に初期ファイルが生成されます。
ポイント: アプリケーション名は英小文字で、Pythonのパッケージ名として有効な名前(英数字とアンダースコア)を使用してください。例: blog, user_auth, shop
Step 2settings.pyへの登録
作成したアプリケーションをsettings.pyのINSTALLED_APPSに追加します。この登録を忘れると、マイグレーションやテンプレートの検索が正しく動作しません。
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myapp", # 追加
]
注意: INSTALLED_APPSへの登録を忘れると、makemigrationsでマイグレーションファイルが生成されない、テンプレートが見つからないなどの問題が発生します。アプリ作成後は必ず登録してください。
Step 3フォルダ構成と各ファイルの役割
作成されたアプリケーションフォルダには以下のファイルが含まれています。
myapp/
migrations/ # マイグレーションファイルが保存されるフォルダ
__init__.py # Pythonパッケージ認識用
admin.py # 管理画面の表示設定
apps.py # アプリケーションの設定
models.py # データベースのテーブル定義
tests.py # テストコード
views.py # リクエスト処理とレスポンス返却
| ファイル名 | 説明 | 使用頻度 |
|---|---|---|
| models.py | データベースのテーブル構造を定義する | 高 |
| views.py | リクエストを処理してレスポンスを返す | 高 |
| admin.py | 管理画面でのモデルの表示設定 | 高 |
| urls.py | URLルーティング(手動作成) | 高 |
| migrations/ | モデルの変更履歴 | 自動生成 |
| apps.py | アプリケーション設定 | 低 |
| tests.py | テストコード | 中 |
Step 4urls.pyの作成
urls.pyは初期状態では存在しないため、アプリケーションフォルダ内に新規作成します。
from django.urls import path
from . import views
app_name = "myapp"
urlpatterns = [
path("", views.IndexView.as_view(), name="index"),
]
さらに、プロジェクトのurls.pyからアプリケーションのurls.pyを読み込む設定を追加します。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("myapp/", include("myapp.urls")),
]
Step 5最初のビューを作成する
動作確認のために、シンプルなビューを作成してみましょう。
from django.views import View
from django.http import HttpResponse
class IndexView(View):
def get(self, request):
return HttpResponse("Hello, Django!")
開発サーバーを起動してhttp://127.0.0.1:8000/myapp/にアクセスすると、「Hello, Django!」と表示されます。
python manage.py runserver
Step 6Djangoの処理の流れ
Djangoがリクエストを受けてからレスポンスを返すまでの流れは以下の通りです。
| 順序 | 処理 | 説明 |
|---|---|---|
| 1 | リクエスト受信 | ブラウザからのHTTPリクエストをDjangoが受け取る |
| 2 | urls.py(プロジェクト) | プロジェクトのurls.pyで対応するアプリを決定する |
| 3 | urls.py(アプリ) | アプリのurls.pyで対応するビューを決定する |
| 4 | views.py | ビューがリクエストを処理し、必要に応じてmodels.pyからデータを取得する |
| 5 | テンプレート | HTMLテンプレートにデータを埋め込む |
| 6 | レスポンス返却 | 処理結果をHTMLとしてブラウザに返す |
ポイント: URLの解決は「プロジェクトのurls.py → アプリのurls.py」の順番で行われます。include()を使ってアプリごとにurls.pyを分割することで、大規模なプロジェクトでもルーティングを整理できます。
まとめ
python manage.py startapp アプリ名でアプリケーションを作成する- 作成後は必ず
settings.pyのINSTALLED_APPSに登録する - アプリ内に
urls.pyを手動で作成し、ルーティングを定義する - views.pyでリクエスト処理を記述し、テンプレートやレスポンスを返す
- Djangoの処理の流れは「リクエスト → urls.py → views.py → テンプレート → レスポンス」