DjangoとはPython製のWebフレームワーク
Djangoは、Pythonで書かれたWebアプリケーションフレームワークです。
フレームワークとは、Webアプリを開発するために必要な部品や仕組みをまとめたツールセットです。ログイン機能、データベース操作、URL管理など、Webアプリに共通する処理があらかじめ用意されています。
Djangoを使うと、Pythonを使いながらWebアプリを効率よく作れます。1つひとつをゼロから作る必要がないため、ロジックの実装に集中しやすくなります。
Pythonの基礎については、以下の記事で解説しています。
Pythonとは?初心者向けにわかりやすく解説|何ができる?使い方・始め方
DjangoとFlaskの違い
PythonのWebフレームワークにはDjangoのほかにFlaskがあります。大きな違いは「規模と標準機能の多さ」です。
| Django | Flask | |
|---|---|---|
| 規模感 | 大〜中規模向け | 小〜中規模向け |
| 標準機能 | 多い(認証・管理画面など) | 少ない(必要なものを追加) |
| 学習コスト | やや高め | やや低め |
| 自由度 | 規約に沿って使う | 自分で設計できる |
最初から多くの機能が使えるDjangoは、ある程度の規模があるWebアプリの開発に向いています。
Djangoで何が作れるか
Djangoは実際のサービス開発で広く使われています。以下のようなものが作れます。
- ブログ・CMS:記事の投稿・編集・削除機能を持つサイト
- ECサイト:商品一覧・カート・決済フローを持つショッピングサイト
- 業務システム:社内の申請・承認フローや管理ツール
- APIサーバー:フロントエンドやモバイルアプリと連携するREST API
- SNSやコミュニティ:ユーザー登録・投稿・フォロー機能を持つサービス
実績のある事例としては、InstagramやPinterestなどの大規模サービスもDjangoをベースに構築されています。
Djangoの主な機能
Djangoに標準で備わっている機能を確認しておきます。
ORM(データベース操作)
SQLを直接書かなくても、Pythonのコードでデータベースを操作できます。データの取得・追加・更新・削除をPythonのオブジェクトとして扱えます。
管理画面(Admin)
管理者向けのデータ管理画面が自動で生成されます。モデルを定義するだけで、ブラウザ上でデータの確認・編集が可能になります。
認証システム
ユーザーの登録・ログイン・ログアウト・パスワード管理の仕組みが標準で含まれています。
URLルーティング
URLと処理関数(ビュー)を対応付ける仕組みが整っています。どのURLにアクセスしたらどの処理を呼ぶかをurls.pyで管理します。
テンプレートエンジン
HTMLにPythonの変数や条件分岐・ループを埋め込むためのテンプレート機能があります。
Djangoの基本構造(MVTパターン)
DjangoはMVT(Model・View・Template)という設計パターンで動きます。
- Model:データベースのテーブル構造を定義する
- View:リクエストを受け取り、データを取得して返す処理を書く
- Template:ブラウザに表示するHTMLを定義する
リクエストが来ると「View → Model(データ取得)→ Template(HTML生成)→ レスポンス」の流れで処理されます。
Django入門:インストールから起動まで
前提
Pythonが使える環境が必要です。インストール済みであることを確認してから進めてください。
仮想環境(venv)を使って作業するとライブラリの管理がしやすくなります。venvについては以下の記事で解説しています。
Step 1:仮想環境の作成と有効化
python -m venv myenv
Windows の場合:
myenv\Scripts\activate
macOS / Linux の場合:
source myenv/bin/activate
Step 2:Djangoのインストール
pip install django
インストールできたかを確認します。
python -m django --version
4.x.x
バージョン番号が表示されればインストール完了です。
Step 3:プロジェクトの作成
django-admin startproject mysite
mysite というフォルダが作成されます。中に以下のファイルが生成されます。
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
Step 4:開発サーバーの起動
cd mysite
python manage.py runserver
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
ブラウザで http://127.0.0.1:8000/ を開くと、Djangoのデフォルト画面が表示されます。
アプリの作成と簡単なページ表示
DjangoではプロジェクトのなかにアプリをApp単位で作成します。
Step 1:アプリの作成
python manage.py startapp blog
blog フォルダが作成されます。
Step 2:settings.pyにアプリを登録
mysite/settings.py の INSTALLED_APPS に blog を追加します。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 追加
]
Step 3:ビューを作成する
blog/views.py に処理を書きます。
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, Django!")
Step 4:URLを設定する
blog/urls.py を新しく作成します。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
次に、mysite/urls.py に blog のURLを追加します。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')), # 追加
]
Step 5:確認する
開発サーバーを起動して http://127.0.0.1:8000/blog/ を開きます。
python manage.py runserver
Hello, Django!
ブラウザに Hello, Django! と表示されます。
よくあるエラーと対処法
ModuleNotFoundError: No module named ‘django’
仮想環境が有効になっていない状態でコマンドを実行したときに起きます。activate を実行してから再試行してください。
# Windows
myenv\Scripts\activate
# macOS / Linux
source myenv/bin/activate
That port is already in use.
ポート8000がすでに使われているときのエラーです。別のポートを指定して起動できます。
python manage.py runserver 8080
TemplateDoesNotExist
テンプレートファイルが見つからないときのエラーです。テンプレートの保存先パスが settings.py の TEMPLATES 設定と一致しているかを確認してください。基本的には アプリ名/templates/ の中にHTMLファイルを置きます。
Django学習の次のステップ
入門として触れたあとは、以下の順で進めると理解が深まります。
- Modelを作る:データベースのテーブルを定義して
python manage.py migrateで反映する - 管理画面を使う:
python manage.py createsuperuserで管理ユーザーを作成し、自動生成される管理画面を確認する - テンプレートを使う:HTMLファイルを作成して、ビューからデータを渡して表示する
- フォームを作る:ユーザーの入力を受け付けて処理する
- 本番環境へのデプロイ:作ったアプリを外部からアクセスできる状態にする
公式ドキュメントのチュートリアルは日本語に対応しており、入門から応用まで体系的に学べます。
どこまで独学で進めるか、または体系的に学ぶかを検討したい場合は、以下の記事が参考になります。
AIが普及した時代にプログラミングスクールは必要か?【判断基準を解説】
AI時代とDjangoの関係
AIにコードを書かせる場面でも、DjangoのMVT構造やURL設計の基本を理解していると、生成されたコードの意図を確認しやすくなります。フレームワークの骨格を知っておくと、AIの出力が正しいかどうかを判断しやすくなります。
まとめ
この記事では以下の内容を解説しました。
- DjangoはPython製のWebフレームワークで、認証・DB操作・管理画面などが標準で備わっている
- MVT(Model・View・Template)パターンで動作する
pip install djangoでインストールし、数ステップで開発サーバーを起動できる- ビュー・URL設定・テンプレートの流れを理解することが入門の第一歩
Djangoを使うことで、Pythonの知識を活かしながらWebアプリの開発に踏み出せます。まずは開発サーバーを起動して、ページが表示される流れを体験するところから始めてみてください。