DjangoのMTVモデルについて:Vasyworks解説

Vasyworksでは、「Django」というPythonで使えるWEBフレームワークを利用しています。 DjangoはMTVモデルというモデルを採用しています。

MTVはそれぞれモデル・テンプレート・ビューの頭文字です。モデルはデータベースからのデータ取得を受け持ち、O/Rマッピングの機能などがあります。テンプレートは画面表示を受け持ち、Djangoテンプレート言語を使ってモデルから取得したデータをさせることもできます。ビューはアクセス制御や画面遷移の制御の処理を行ったり、画面表示させようとするテンプレートにモデルを結び付けたりします。

Djangoでは、ブラウザからのリクエストに対して、URL設定ファイルの記述を元にビューを呼び出します。ビューはモデルを使ってデータベースにアクセスしてデータ取得や加工を行い、テンプレートを呼び出して取得したデータや画面表示用のデータを付与します。テンプレートは付与されたデータをDjangoテンプレート言語での記述に基づいて処理し、HTMLを出力します。

Djangoでは1システム毎に1プロジェクト作ります。プロジェクトの中では、実装する機能をアプリケーションという単位でまとめて、プロジェクトのルートディレクトリの下に1アプリケーション毎に1つ、アプリケーション名を表すサブディレクトリを作って、そこにモデルやビューのファイルを記述していきます。また、それぞれのアプリケーションのURL設定ファイルもそこに記述します。1つのプロジェクトには複数のアプリケーションを作ることができます。テンプレートはプロジェクトのルートディレクトリの下に「templates」というサブディレクトリを作り、さらにその下に各アプリケーション名を表すサブディレクトリを作って、そこの各アプリケーション毎のテンプレートのファイルを記述するのが一般的です。

VasyworksはDjangoのMTVのルールに沿って作っています。ですのでプログラムのカスタマイズは、基本的にはURLルーティングについてはURL設定ファイルを、データ項目についてはモデルのファイルを、画面のデザインについてはテンプレートのファイルを、モデルとテンプレートの制御についてはビューのファイルを変更することで行うことができます。

ちなみにMTVモデルとよく似たものにMVCモデルというものがあります。MVCモデルはモデル・ビュー・コントローラの頭文字です。Mはどちらも同じです。MVCモデルのVはMTVモデルのTとVにあたります。MTVモデルでは画面のデザイン部分がテンプレートという形で明確に切り離されています。MVCモデルのCに当たるのはMTVモデルでは「URL 設定にしたがってリクエストを適切なビューに送信する機構自体」ということで、Djangoの公式ドキュメントのFAQで解説されています。

→ Vasyworks 解説 目次