MTV と MVCについてざっくりまとめる

最近Djangoにも触れ始めてきて、MVCを採用しているCakePHPとの構造の多くの違いに気づいてきました。

この際にちょっとまとめようと思います。

MTV

Djangoで使われている考え方。”Model, Template, View”の略称。

MVC

Laravel, Rails, CakePHPで使われる考え方。”Model, View, Controller”の略称

では、以下でMTVのModel, Template, Viewのそれぞれについてみていこうと思う。

MTVのM, Model (モデル)

モデルではデータベースと連携してデータを取ってくる。これはMVCのモデルとそう変わらない。

MTVのT, Template(テンプレート)

一番簡単に言うと、htmlファイルのことを指す。ただ、htmlファイルだけではデータをデータベースから取ってくることはできないので、以下のViewを通して持ってきてもらう。

MTVのV, View(ビュー)

モデルで引っ張ってきた情報を記述していく場所。この情報がTemplateにて扱われることになる。 なのでモデルは仲介役、と考えてもいいだろう。

ではMVCのControllerはどこに行ったのか?

DjangoにおいてMVCのControllerにあたるのは、URL ディスパッチャというところになる。(urls.pyというファイル)

参考サイト

DjangoのMTVという考え方

【Django】「MTV(Model – Template – View)」って何?「MVC」と何が違う?

2-1 MTVについて学ぼう