フレームワークとは|Flask・FastAPI・Djangoの選び方
「フレームワークって何?」から、Pythonの代表3つの違い、目的別の選び方までを1ページで。Webアプリ開発の記事で名前だけ出した道具を、ここでちゃんと紹介します。
笑うPython男
フレームワーク選びで悩む人、多いよね。でも安心して。最初の一台は「軽くて見通しのいいやつ」で正解だから。重い道具は、必要になってからで間に合うよ。
フレームワークとは何か
フレームワークは、Webアプリ作りで毎回必要になる「土台の決まりごと」を先に用意してくれた枠組みです。具体的には、次のような面倒を肩代わりしてくれます。
- ルーティング:URLごとに、どの処理を呼ぶかの振り分け
- リクエストの読み解き:送られてきたデータ(フォーム、JSONなど)の取り出し
- レスポンスの組み立て:HTMLやJSONを正しい形で返す
- 開発用サーバー:学習中にすぐ動かせる簡易サーバー
ライブラリが「道具」なら、フレームワークは「作業の型」。型があるから、誰が書いても似た構造になり、他人が読んでも迷子になりにくいのです。
代表3つの比較
| Flask | FastAPI | Django | |
|---|---|---|---|
| 性格 | 小さく軽い。最小限+必要な分だけ足す | API特化。速くて型に強い | 全部入り。管理画面や認証まで同梱 |
| 向いている用途 | 学習、小〜中規模のWebアプリ | Web API、マイクロサービス | 会員制サイト、業務システム |
| 学習のしやすさ | ◎ 仕組みが見える | ○ 型ヒントの知識があると楽 | △ 覚える決まりが多い |
| 自由度 | 高い(部品は自分で選ぶ) | 高い | 低め(流儀に乗るのが前提) |
選び方:目的で決める
まず「Webの仕組みを理解したい」→ Flask
URLと関数の対応がそのまま見えるので、基礎固めに最適です。このサイトのWebアプリ記事もFlaskで進めています。迷ったらまずこれで問題ありません。
「APIを作るのが目的」→ FastAPI
スマホアプリやフロントエンドと通信するAPIが主役ならFastAPI。型ヒントを書くと入力チェックとドキュメント(Swagger UI)が自動で付いてくるのが強みです。非同期処理にも対応します。
「ログイン、管理画面、データベースまで一式ほしい」→ Django
会員登録、権限管理、管理画面といった「よくある機能」が最初から揃っています。本格的なサービスを短期間で立ち上げたいときの選択肢。ただし、流儀を覚えるまでの学習量は3つの中で一番多いです。
笑うPython男
「どれが一番すごいか」じゃなくて「何を作りたいか」で選ぶんだよ。道具選びで迷ってる時間がいちばんもったいない。振り回されてる時点で、もう負けてるからね。
このサイトでのおすすめ順
- Flaskで小さなアプリを一周する(公開中のWebアプリ記事)
- APIに興味が出たら FastAPI を触る
- 大きなサービスを作りたくなったら Django を検討する
フレームワークを乗り換えても、Pythonの文法や「リクエストとレスポンス」という基礎はそのまま使えます。最初の選択で一生が決まるわけではないので、気楽に始めてください。