Python Django入門:Webアプリ開発の基礎を学ぼう

PythonのDjangoフレームワークを使ってWebアプリを開発する方法を初心者向けに解説。ORMや管理画面、MVTパターンなど基本を学びます。

PythonDjangoWebアプリORM管理画面MVT2026/5/25

Python Django入門:Webアプリ開発の基礎を学ぼう

DjangoはPythonで最も人気のあるWebフレームワークの一つです。高速な開発、セキュリティ、スケーラビリティを提供し、多くの企業で採用されています。この記事では、Djangoの基本概念と簡単なWebアプリの作成手順を解説します。

Djangoとは?

Djangoは、Pythonで書かれたフルスタックのWebフレームワークです。「バッテリー同梱」の思想のもと、認証、管理画面、ORM(Object-Relational Mapping)、テンプレートエンジンなど、Web開発に必要な機能が標準で含まれています。MVT(Model-View-Template)アーキテクチャを採用しており、コードの整理と保守が容易です。

環境構築

まずはDjangoをインストールしましょう。Python 3.8以上が推奨です。

<h1>仮想環境を作成(推奨)</h1>
python -m venv myenv
source myenv/bin/activate  # Windows: myenv\Scripts\activate

<h1>Djangoをインストール</h1> pip install django

プロジェクトの作成

Djangoのプロジェクトを作成します。

django-admin startproject mysite
cd mysite

これで、mysiteディレクトリ内にプロジェクトファイルが生成されます。

アプリケーションの作成

Djangoでは、プロジェクト内に複数のアプリケーションを作成できます。まずはblogアプリを作りましょう。

python manage.py startapp blog

作成したアプリをプロジェクトに登録するため、mysite/settings.pyINSTALLED_APPS'blog'を追加します。

MVTパターン

DjangoはMVT(Model-View-Template)パターンを採用しています。

  • Model: データベースのテーブルを定義するPythonクラス
  • View: リクエストを受け取り、レスポンスを返す関数またはクラス
  • Template: HTMLを生成するためのテンプレートファイル
  • モデルの作成

    blog/models.pyにブログ記事のモデルを定義します。

    from django.db import models
    

    class Post(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)

    def __str__(self): return self.title

    モデルを作成したら、マイグレーションを実行します。

    python manage.py makemigrations blog
    python manage.py migrate
    

    管理画面の活用

    Djangoの管理画面は強力な機能です。まずはスーパーユーザーを作成します。

    python manage.py createsuperuser
    

    次に、blog/admin.pyにモデルを登録します。

    from django.contrib import admin
    from .models import Post
    

    admin.site.register(Post)

    開発サーバーを起動し、管理画面にアクセスします。

    python manage.py runserver
    

    ブラウザでhttp://127.0.0.1:8000/admin/にアクセスし、先ほど作成したスーパーユーザーでログインすると、Postモデルの管理画面が表示されます。ここから記事の追加・編集・削除が行えます。

    ビューとテンプレート

    記事一覧を表示するビューを作成します。まずはblog/views.pyに以下のコードを追加。

    from django.shortcuts import render
    from .models import Post
    

    def post_list(request): posts = Post.objects.all() return render(request, 'blog/post_list.html', {'posts': posts})

    次に、テンプレートを作成します。blog/templates/blog/ディレクトリを作成し、post_list.htmlファイルを追加。

    <!DOCTYPE html>
    <html>
    <head>
        <title>ブログ一覧</title>
    </head>
    <body>
        <h1>ブログ記事一覧</h1>
        <ul>
            {% for post in posts %}
                <li>{{ post.title }} ({{ post.created_at }})</li>
            {% endfor %}
        </ul>
    </body>
    </html>
    

    URL設定

    ビューをURLにマッピングします。blog/urls.pyを作成し、以下の内容を記述。

    from django.urls import path
    from . import views
    

    urlpatterns = [ path('', views.post_list, name='post_list'), ]

    プロジェクト全体のmysite/urls.pyに、blogアプリのURL設定をincludeします。

    from django.contrib import admin
    from django.urls import path, include
    

    urlpatterns = [ path('admin/', admin.site.urls), path('', include('blog.urls')), ]

    開発サーバーを再起動し、http://127.0.0.1:8000/にアクセスすると、管理画面で追加した記事の一覧が表示されます。

    ORMの基本操作

    DjangoのORMを使うと、Pythonコードでデータベースを操作できます。例えば、シェルから新しい記事を作成するには:

    python manage.py shell
    
    from blog.models import Post
    Post.objects.create(title='Django入門', content='Djangoは便利です')
    

    その他の操作:

    <h1>全ての記事を取得</h1>
    posts = Post.objects.all()
    

    <h1>フィルタリング</h1> posts = Post.objects.filter(title__contains='Django')

    <h1>更新</h1> post = Post.objects.get(id=1) post.title = '新しいタイトル' post.save()

    <h1>削除</h1> post.delete()

    まとめ

    この記事では、Djangoの基礎を学び、簡単なブログアプリを作成しました。DjangoのORM、管理画面、MVTパターンを体験できたと思います。さらに詳しく学びたい方は、Djangoの公式ドキュメントやチュートリアルを参照してください。

    Djangoを使えば、Pythonの知識を活かして本格的なWebアプリを効率的に開発できます。ぜひ、実際に手を動かして試してみてください。