Django は、PythonでWebアプリケーションを開発するためのフレームワークです。
DjangoはPythonで記述されたファイル群(ライブラリ)ですが、それだけでなくアプリ開発に必要な機能(開発用サーバやデータベース管理ソフト)も搭載しています。
本シリーズでは初学者の方に向けシンプルなアプリケーション開発を通じて、Djangoのしくみをわかりやすく、要点をまとめて解説します。
第1回は基本的な『Webアプリケーションのしくみ』を解説しました。今回はDjangoがどのようにWebアプリケーションの三層構造を実現しているか、MTVフレームワークを通じて学んでいきましょう!
Django と MTVフレームワーク
MTVフレームワークとは?
DjangoはMTVフレームワークです、と説明されることがありますが、「MTVフレームワーク」とは何でしょうか。まず「MTV」とは「Model(モデル)」「 Template(テンプレート)」「View(ビュー)」の頭文字です。モデル、テンプレート、ビューはWebアプリケーションにおいて以下の役割を担います。
MTV | 役割 |
Model(モデル) | データベースとの連携 |
Template(テンプレート) | WebページのもととなるHTMLドキュメント |
View(ビュー) | モデル、テンプレート等と連携して動的Webページを生成 |
例えばSNSでは登録ユーザー情報はデータベースに保管されています。ログインの際にはModelを介してユーザー照合が行われます。ViewはModelを介して取得したユーザー情報とTemplateのHTMLドキュメントを用いて動的Webページを生成し、レスポンスとしてWebブラウザへ返します。
Django におけるWeb三層構造とMTVフレームワーク
それでは前回学習したWeb三層構造においてどのようにMTVフレームワークが機能しているか、模式図を見てみましょう。
ここではじめて「URLディスパッチャ」という言葉が出てきました。URLディスパッチャとはWebアプリへのアクセス(http://<ドメイン名>/~/)に基づいて、対応するViewを呼び出す仕組みです。
MTVフレームワークはレストラン?
イメージの話になってしまい必ずしも正確ではありませんが、MTVフレームワークをレストランに例えてみます。
顧客(Webブラウザ)から注文(リクエスト)を受けたウェイター(Webサーバ)が料理長(URLディスパッチャ)へ注文を伝えます。
料理長はその料理専任のシェフ(View)へ調理指示をします。シェフは冷蔵庫(データベース)から食材(データベースに保管されているデータ)をModelを介して取り出し、調理します。
調理したものを専用のお皿(Template)に盛り付けし、料理長が出来を確認した上でウェイターへ配膳(レスポンス)指示をしている、とイメージすると理解しやすいかと思いますが、いかがでしょうか。
さて、前回の記事と今回の記事を通してDjangoがどのようにWeb三層構造を実現し、Webアプリケーションとして成り立っているか、ざっくりと理解できたかと思います。
次回は「開発環境の構築」に取り組んでいきましょう!
コメント