【じゃんご】

Django とは?

💡 Python製の「全部入り」Webフレームワーク
📌 このページのポイント
Django MVTアーキテクチャ ユーザー (ブラウザ) Template HTML生成 View ロジック処理 Model データ定義 データベース リクエスト レスポンス ①リクエスト → ②View処理 → ③Model問合せ → ④Template描画 → ⑤レスポンス
Django MVT(Model-View-Template)のイメージ
ひよこ ひよこ

Djangoって何がすごいの?

ペンギン先生 ペンギン先生

バッテリー同梱(batteries included)」がDjangoの哲学で、Webアプリに必要なものがほぼ全部最初から入ってるんだ。特に管理画面が自動で作られるのはすごくて、データベーステーブルを定義するだけで、データの追加・編集・削除ができる画面がポンと出てくるよ。

ひよこ ひよこ

ORMって何?

ペンギン先生 ペンギン先生

データベースを操作するとき、普通はSQL文を書くんだけど、ORMを使うとPythonのコードでデータベース操作ができるんだ。「User.objects.filter(age=25)」みたいに書くと、SQLに自動変換してくれるよ。

ひよこ ひよこ

Flaskと比べてどっちがいいの?

ペンギン先生 ペンギン先生

Flaskは必要最小限の機能だけで始めて自分で好きなライブラリを足していくスタイル。Djangoは最初から全部入り。小さなAPIならFlask、ユーザー管理や管理画面が必要な本格的なWebアプリならDjangoが向いてるよ。

ひよこ ひよこ

Djangoの弱点ってある?

ペンギン先生 ペンギン先生

フルスタックだからこそ覚えることが多いのと、小さなAPIを作るだけだと「重い」と感じることかな。あとDjangoの流儀から外れた使い方をしようとすると途端に難しくなるんだ。

ひよこ ひよこ

Django REST Frameworkって別物なの?

ペンギン先生 ペンギン先生

DjangoをベースにしてREST APIを作りやすくするサードパーティのライブラリだよ。Serializerでデータの変換・バリデーションを担当するんだけど、ModelSerializerの自動フィールド生成に頼りすぎると、意図しないフィールドが公開されてセキュリティリスクになることがあるんだ。Serializerをどこまで明示的に書くか、ViewSetの自動化をどこまで許容するかのバランスは、大規模API設計でベテランでも判断に迷うポイントだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Django」って出てきたら「Pythonで素早くWebアプリが作れるフレームワークだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Django」 = ジャズギタリスト Django Reinhardt にちなんだ名前
💬 ジャンゴ・ラインハルトはベルギーのジャズミュージシャン。開発者がジャズ好きだったんだ
← 用語集にもどる