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 Buddy 修正ガイド:どのようにしてシャイニングレジェンド級ペットを手に入れるか

Claude Code Buddy 修正ガイド:どのようにしてシャイニングレジェンド級ペットを手に入れるか 2026年4月1日、Anthropic は Claude Code 2.1.89 バージョンでひっそりとエッグ機能を追加しました——...

ObsidianはDefuddleを発表し、Obsidian Web Clipperを新たな高みへと引き上げたTechnology

ObsidianはDefuddleを発表し、Obsidian Web Clipperを新たな高みへと引き上げた

ObsidianはDefuddleを発表し、Obsidian Web Clipperを新たな高みへと引き上げた 私はObsidianのコア理念がとても好きです:ローカルファースト、すべてはファイル、そして単純なMarkdownテキストファ...

OpenAIが突然発表した「三合一」:ブラウザ+プログラミング+ChatGPTの統合、内部で過去1年の誤りを認めるTechnology

OpenAIが突然発表した「三合一」:ブラウザ+プログラミング+ChatGPTの統合、内部で過去1年の誤りを認める

OpenAIが突然発表した「三合一」:ブラウザ+プログラミング+ChatGPTの統合、内部で過去1年の誤りを認める 2026年3月19日深夜、OpenAI本社から内部メモが流出し、『ウォール・ストリート・ジャーナル』が真っ先に原文を入手し...

2026年、自分を「自律」に縛らない!この8つの小さなことを実践すれば、健康は自然にやってくるHealth

2026年、自分を「自律」に縛らない!この8つの小さなことを実践すれば、健康は自然にやってくる

2026年、自分を「自律」に縛らない!この8つの小さなことを実践すれば、健康は自然にやってくる 新しい年が始まりましたが、昨年立てた目標は達成できましたか?毎年「やる気満々」と「諦めたい」の間で揺れ動いていませんか? 2026年、考え方を...

努力しても痩せられないママたち、絶対にここでつまずいているHealth

努力しても痩せられないママたち、絶対にここでつまずいている

努力しても痩せられないママたち、絶対にここでつまずいている 3月も半ばを過ぎましたが、あなたのダイエット計画はどうですか?痩せましたか?どれくらい痩せましたか? 私のダイエット経験 2月末にダイエットを決意してから、実際にはどんどん体重...

📝
Technology

AIブラウザ 24時間安定運用ガイド

AIブラウザ 24時間安定運用ガイド 本チュートリアルでは、安定して長期間運用できるAIブラウザ環境の構築方法を紹介します。 対象 AIエージェント 自動化ブラウジング Web自動化 AIアシスタント 自動テストシステム 目標 ブラウザを...