Python Django入門:Webアプリ開発の基礎を学ぼう
PythonのDjangoフレームワークを使ってWebアプリを開発する方法を初心者向けに解説。ORMや管理画面、MVTパターンなど基本を学びます。
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.pyのINSTALLED_APPSに'blog'を追加します。
MVTパターン
DjangoはMVT(Model-View-Template)パターンを採用しています。
モデルの作成
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アプリを効率的に開発できます。ぜひ、実際に手を動かして試してみてください。