Django入門ガイド:最初のWebアプリケーションをすばやく構築する

2/19/2026
3 min read

Django入門ガイド:最初のWebアプリケーションをすばやく構築する

Djangoは、高速な開発と簡潔な設計を目標とする高度なPython Webフレームワークです。モデル-テンプレート-ビュー(MTV)アーキテクチャに従い、コードの再利用とコンポーネント化を推奨します。このガイドでは、簡単なDjangoアプリケーションをステップごとに作成し、すぐに始められるようにします。

1. 環境構築

まず、システムにPythonがインストールされていることを確認する必要があります。 DjangoはPython 3.6以降の使用を推奨しています。

1.1 Pythonのインストール

システムにPythonがインストールされていない場合は、Python公式サイトからダウンロードしてインストールできます。

1.2 仮想環境 (Virtual Environment) の作成

異なるプロジェクト間の依存関係を分離するために、仮想環境を使用することを強くお勧めします。

  1. ターミナルまたはコマンドプロンプトを開きます。

  2. プロジェクトディレクトリを作成します(例:myproject):

    mkdir myproject
    cd myproject
    
  3. 仮想環境を作成してアクティブ化します:

    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プロジェクトを作成できます。

  1. プロジェクトディレクトリ(myproject)で、次のコマンドを実行します。

    django-admin startproject mysite
    

    これにより、myprojectディレクトリにmysiteという名前のディレクトリが作成され、Djangoプロジェクトのスケルトンファイルが含まれます。

  2. mysiteディレクトリに移動します。

    cd mysite
    
  3. Djangoプロジェクトのディレクトリ構造は次のとおりです。

    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            asgi.py
            wsgi.py
    
    • manage.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には、ローカルでの開発とテストを容易にする軽量な開発サーバーが付属しています。

  1. mysite ディレクトリで、次のコマンドを実行します:

    python manage.py runserver
    
  2. ブラウザを開き、http://127.0.0.1:8000/ にアクセスします。 "It worked! Congratulations on your first Django-powered page." というページが表示されるはずです。

4. Djangoアプリケーションの作成

1つのDjangoプロジェクトには、複数のアプリケーションを含めることができます。 myapp という名前のアプリケーションを作成してみましょう。

  1. 新しいターミナルウィンドウを開きます (開発サーバーは実行したままにします)。

  2. mysite ディレクトリで、次のコマンドを実行します:

    python manage.py startapp myapp
    

    これにより、mysite ディレクトリに myapp という名前のディレクトリが作成され、Djangoアプリケーションのスケルトンファイルが含まれます。

  3. 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: ビュー関数を定義し、リクエストを処理してレスポンスを返します。
  4. mysite/settings.py で、myappINSTALLED_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!" と表示する簡単なビューを作成します。

  1. myapp/views.py ファイルを編集し、次のコードを追加します:

    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello, Django!")
    
  2. myapp/urls.py ファイルを作成し、URLをビュー関数にマッピングします:

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
    ]
    
  3. myapp/urls.pymysite/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 設定を追加
    ]
    
  4. http://127.0.0.1:8000/myapp/ にアクセスします。 "Hello, Django!" のページが表示されるはずです。

6. モデルの作成

簡単なモデルを作成して、データを保存してみましょう。

  1. 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) を含みます。

  2. データベースのマイグレーションを作成して適用します:

    python manage.py makemigrations myapp
    python manage.py migrate
    

    makemigrations コマンドは、モデルに基づいてマイグレーションファイルを作成し、migrate コマンドは、マイグレーションをデータベースに適用します。

7. Django 管理サイトの使用

Django は、データを簡単に管理できる強力な管理サイトを提供します。

  1. スーパーユーザーを作成します:

    python manage.py createsuperuser
    

    プロンプトに従って、ユーザー名、メールアドレス、パスワードを入力します。

  2. myapp/admin.py ファイルを編集し、Question モデルを登録します:

    from django.contrib import admin
    from .models import Question
    
    admin.site.register(Question)
    
  3. http://127.0.0.1:8000/admin/ にアクセスし、作成したスーパーユーザーでログインします。 "Questions" モジュールが表示され、質問の追加、編集、削除ができるはずです。

8. テンプレートの使用

テンプレートを使用すると、より柔軟に HTML ページを生成できます。

  1. myapp ディレクトリに templates という名前のディレクトリを作成し、さらに templates ディレクトリの中に myapp という名前のディレクトリを作成します ( myapp/templates/myapp )。

  2. myapp/templates/myapp ディレクトリに index.html という名前のファイルを作成し、以下のコードを追加します:

    
    
        Hello, Django!
    
    
        The current time is: {{ current_time }}
    
    
    
  3. 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 関数はテンプレートをロードし、データをテンプレートに渡してレンダリングします。

  4. 再度 http://127.0.0.1:8000/myapp/ にアクセスします。現在時刻が表示されたページが表示されるはずです。

9. 結論

このガイドを通して、Django の基本的な概念と使用方法を理解しました。これには、環境構築、プロジェクトとアプリケーションの作成、モデルの定義、ビューの作成、およびテンプレートの使用が含まれます。 これはほんの始まりに過ぎません。Django は豊富な機能を提供しており、学習と探求を続け、より複雑な Web アプリケーションを構築できます。

Published in Technology

You Might Also Like

クラウドコンピューティング技術の使用方法:最初のクラウドインフラストラクチャ構築の完全ガイドTechnology

クラウドコンピューティング技術の使用方法:最初のクラウドインフラストラクチャ構築の完全ガイド

クラウドコンピューティング技術の使用方法:最初のクラウドインフラストラクチャ構築の完全ガイド はじめに デジタルトランスフォーメーションの加速に伴い、クラウドコンピューティングは企業や開発者の選択肢として人気を集めています。クラウドコンピュ...

警告!Claude Codeの父が言う:1ヶ月後にPlan Modeを使わなくなり、ソフトウェアエンジニアの肩書きが消えるTechnology

警告!Claude Codeの父が言う:1ヶ月後にPlan Modeを使わなくなり、ソフトウェアエンジニアの肩書きが消える

警告!Claude Codeの父が言う:1ヶ月後にPlan Modeを使わなくなり、ソフトウェアエンジニアの肩書きが消える 最近、YCの円卓インタビューがテクノロジー界で話題になっています——Claude Codeの創設者Boris Ch...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习リソース推薦 深層学習がさまざまな分野で急速に発展する中、ますます多くの学習リソースやツールが登場しています。この記事では、2026年に注目すべき10の深層学習リソースを推薦し、この分野での迅速な成長を支援...

2026年 Top 10 AI 代理:核心卖点解析Technology

2026年 Top 10 AI 代理:核心卖点解析

2026年 Top 10 AI 代理:核心卖点解析 引言 人工知能の急速な発展に伴い、AI エージェント(AI Agents)は技術分野のホットな話題となっています。ますます多くの開発者や企業が、これらのインテリジェントエージェントを利用し...

2026年 Top 10 AI 工具推薦:人工知能の真の潜在能力を解放するTechnology

2026年 Top 10 AI 工具推薦:人工知能の真の潜在能力を解放する

2026年 Top 10 AI 工具推薦:人工知能の真の潜在能力を解放する 技術が急速に進化する今日、人工知能(AI)は様々な業界でのホットな話題となっています。医療から金融サービス、教育からエンターテインメントまで、AIツールは私たちの働...

2026年 Top 10 AWSツールとリソースの推奨Technology

2026年 Top 10 AWSツールとリソースの推奨

2026年 Top 10 AWSツールとリソースの推奨 急速に発展するクラウドコンピューティングの分野で、Amazon Web Services (AWS) は常にリーダーであり、開発者、企業、技術専門家がクラウド上で効果的に作業できるよう...