本当に初めての人の為のDjangoプレ入門
Djangoを始めるその前に
こんにちは。gumiの西川です。さて今回はPythonもDjangoも始めたばかりの私が、あえてDjangoのことについて書いてみたいと思います。というのも、正直Djangoの公式サイトは本当に始めたばかりの初心者の入り口としてはあまり優しくないなぁと思ったからです。今からDjangoを始めようという方に「Djangoってこういう感じのものなんだな」というのがなんとなくでもこの記事から伝われば幸いです。
初心者向けというのも考慮して、文字だけだと堅苦しくなってしまうので、写真や図などを使って説明していきたいと思います。とりあえず写真は私の息子の翔太です。とっても可愛いですね!
なお今回は『Djangoを利用した一般的なWebアプリケーションを作る』ということに絞って、簡単に書くことを優先しています。正確性よりも分かりやすさを優先していますので、若干微妙な表現があるところに関してはご了承下さい。
Djangoとは
さて、改めて。みなさんはDjangoをご存知でしょうか。正直言うと、私はつい数ヶ月前まで存在すら知りませんでした。初心者のみなさんはDajngo(ジャンゴ)という音の響きから謎の毛むくじゃらの生物などを思い浮かべるかも知れませんが…しないですよね…実際のDjangoはPythonで実装されたWebアプリケーションフレームワーク(以下、フレームワーク)なのです。同じようなフレームワークではRuby On RailsやCakePHPなどは人気なので、こちらの名前は聞いたことがあるかも知れません。
念のために、フレームワークを一言で説明すると、「ある程度出来上がった枠組み(フレームワーク)の残りの部分を埋めていけばアプリケーションが作れちゃう便利なもの」です。決められた場所に決められたことだけを最低限書けばWebアプリケーションが出来てしまうので、一から作るよりも効率よく開発が行えます。
と、大変便利なフレームワークなのですが、逆にフレームワークを使った開発に慣れていない人には、「あれはこっちに記述」「これはこっちに記述」「ん、これはどこに記述すんだっけ?」と最初のうちは混乱してしまうかもしれません。ということで、Djangoの場合この辺がどうなっているかを整理してみたいと思います。
Djangoの仕組み
Djangoでは役割に応じて主に4つの機能に分かれており、それらはファイルも全て別になっています。まず最初にこの4つの機能をしっかり頭に叩き込みましょう。
それらの機能の名前と代表的な役割はこんな感じです。
機能名 | 役割 |
---|---|
URLディスパッチャ | URLを解析して適切なビューを選ぶ(urls.py) |
ビュー | モデルの処理を呼んだりして、テンプレートに渡す値を作り、HTTPのレスポンスを返す(views.py) |
モデル | データの定義とそれに対する処理を行う(主にRDBとのやりとりを行う)(models.py) |
テンプレート | HTMLのデザインを定義する。ビューで生成した値を動的に展開出来る(index.html等) |
そして、処理の流れはこんな感じです。
ざっくり説明すると、URLディスパッチャが適切なビュー関数を呼んで…ビュー関数が必要に応じたモデルの処理を呼んで(モデルの中ではRDBをゴニョゴニョして)…テンプレートに割り当てたい値を整形したりして…テンプレートファイルをレンダリングしてWebサーバーに返す…という感じです。
なんとなく…わかりました!?