Django入門ガイド:最初のWebアプリケーションをすばやく構築する
Django入門ガイド:最初のWebアプリケーションをすばやく構築する
Djangoは、高速な開発と簡潔な設計を目標とする高度なPython Webフレームワークです。モデル-テンプレート-ビュー(MTV)アーキテクチャに従い、コードの再利用とコンポーネント化を推奨します。このガイドでは、簡単なDjangoアプリケーションをステップごとに作成し、すぐに始められるようにします。
1. 環境構築
まず、システムにPythonがインストールされていることを確認する必要があります。 DjangoはPython 3.6以降の使用を推奨しています。
1.1 Pythonのインストール
システムにPythonがインストールされていない場合は、Python公式サイトからダウンロードしてインストールできます。
1.2 仮想環境 (Virtual Environment) の作成
異なるプロジェクト間の依存関係を分離するために、仮想環境を使用することを強くお勧めします。
-
ターミナルまたはコマンドプロンプトを開きます。
-
プロジェクトディレクトリを作成します(例:
myproject):mkdir myproject cd myproject -
仮想環境を作成してアクティブ化します:
python3 -m venv venv # または python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows仮想環境をアクティブ化すると、ターミナルプロンプトに
(venv)と表示され、仮想環境を使用していることを示します。
1.3 Djangoのインストール
アクティブな仮想環境で、pipを使用してDjangoをインストールします。
pip install Django
インストールが成功したかどうかを確認します。
python -m django --version
Djangoのバージョン番号が表示されるはずです。
2. Djangoプロジェクトの作成
Djangoをインストールしたら、新しいDjangoプロジェクトを作成できます。
-
プロジェクトディレクトリ(
myproject)で、次のコマンドを実行します。django-admin startproject mysiteこれにより、
myprojectディレクトリにmysiteという名前のディレクトリが作成され、Djangoプロジェクトのスケルトンファイルが含まれます。 -
mysiteディレクトリに移動します。cd mysite -
Djangoプロジェクトのディレクトリ構造は次のとおりです。
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.pymanage.py: Djangoプロジェクトを管理するためのコマンドラインツール。mysite/: プロジェクト構成を含むPythonパッケージ。__init__.py: 空のファイル。PythonにこのディレクトリをPythonパッケージとして扱うように指示します。settings.py: プロジェクトの構成ファイル。データベース設定、デバッグモードなどが含まれます。urls.py: URLルーティング構成。URLをビュー関数にマッピングします。asgi.py: ASGI(Asynchronous Server Gateway Interface)構成ファイル。非同期アプリケーションのデプロイに使用されます。wsgi.py: WSGI(Web Server Gateway Interface)構成ファイル。従来の同期アプリケーションのデプロイに使用されます。## 3. 開発サーバーの起動
Djangoには、ローカルでの開発とテストを容易にする軽量な開発サーバーが付属しています。
-
mysiteディレクトリで、次のコマンドを実行します:python manage.py runserver -
ブラウザを開き、
http://127.0.0.1:8000/にアクセスします。 "It worked! Congratulations on your first Django-powered page." というページが表示されるはずです。
4. Djangoアプリケーションの作成
1つのDjangoプロジェクトには、複数のアプリケーションを含めることができます。 myapp という名前のアプリケーションを作成してみましょう。
-
新しいターミナルウィンドウを開きます (開発サーバーは実行したままにします)。
-
mysiteディレクトリで、次のコマンドを実行します:python manage.py startapp myappこれにより、
mysiteディレクトリにmyappという名前のディレクトリが作成され、Djangoアプリケーションのスケルトンファイルが含まれます。 -
Djangoアプリケーションのディレクトリ構造は次のとおりです。
myapp/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py__init__.py: 空のファイル。Pythonに、このディレクトリをPythonパッケージとして扱うように指示します。admin.py: Django管理バックエンドの設定に使用します。apps.py: アプリケーションの設定。migrations/: データベースの移行を管理するために使用します。models.py: データモデル (データベーステーブル) を定義します。tests.py: テストケースを記述します。views.py: ビュー関数を定義し、リクエストを処理してレスポンスを返します。
-
mysite/settings.pyで、myappをINSTALLED_APPSリストに追加します:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', # myapp を追加 ]
5. 簡単なビューの作成
次に、ブラウザに "Hello, Django!" と表示する簡単なビューを作成します。
-
myapp/views.pyファイルを編集し、次のコードを追加します:from django.http import HttpResponse def index(request): return HttpResponse("Hello, Django!") -
myapp/urls.pyファイルを作成し、URLをビュー関数にマッピングします:from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] -
myapp/urls.pyをmysite/urls.pyに含めます:from django.urls import include, path from django.contrib import admin urlpatterns = [ path('admin/', admin.site.urls), path('myapp/', include('myapp.urls')), # myapp の URL 設定を追加 ] -
http://127.0.0.1:8000/myapp/にアクセスします。 "Hello, Django!" のページが表示されるはずです。
6. モデルの作成
簡単なモデルを作成して、データを保存してみましょう。
-
myapp/models.pyファイルを編集し、次のコードを追加します:from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') def __str__(self): return self.question_textこれは
Questionという名前のモデルを定義し、2 つのフィールドquestion_text(CharField) とpub_date(DateTimeField) を含みます。 -
データベースのマイグレーションを作成して適用します:
python manage.py makemigrations myapp python manage.py migratemakemigrationsコマンドは、モデルに基づいてマイグレーションファイルを作成し、migrateコマンドは、マイグレーションをデータベースに適用します。
7. Django 管理サイトの使用
Django は、データを簡単に管理できる強力な管理サイトを提供します。
-
スーパーユーザーを作成します:
python manage.py createsuperuserプロンプトに従って、ユーザー名、メールアドレス、パスワードを入力します。
-
myapp/admin.pyファイルを編集し、Questionモデルを登録します:from django.contrib import admin from .models import Question admin.site.register(Question) -
http://127.0.0.1:8000/admin/にアクセスし、作成したスーパーユーザーでログインします。 "Questions" モジュールが表示され、質問の追加、編集、削除ができるはずです。
8. テンプレートの使用
テンプレートを使用すると、より柔軟に HTML ページを生成できます。
-
myappディレクトリにtemplatesという名前のディレクトリを作成し、さらにtemplatesディレクトリの中にmyappという名前のディレクトリを作成します (myapp/templates/myapp)。 -
myapp/templates/myappディレクトリにindex.htmlという名前のファイルを作成し、以下のコードを追加します:Hello, Django! The current time is: {{ current_time }} -
myapp/views.pyファイルを編集し、テンプレートを使用します:from django.shortcuts import render import datetime def index(request): now = datetime.datetime.now() return render(request, 'myapp/index.html', {'current_time': now})render関数はテンプレートをロードし、データをテンプレートに渡してレンダリングします。 -
再度
http://127.0.0.1:8000/myapp/にアクセスします。現在時刻が表示されたページが表示されるはずです。
9. 結論
このガイドを通して、Django の基本的な概念と使用方法を理解しました。これには、環境構築、プロジェクトとアプリケーションの作成、モデルの定義、ビューの作成、およびテンプレートの使用が含まれます。 これはほんの始まりに過ぎません。Django は豊富な機能を提供しており、学習と探求を続け、より複雑な Web アプリケーションを構築できます。





