この記事では、Django の MVT アーキテクチャについて、そしてそれが古くからある MVC アーキテクチャとどう違うのかについて話します。では早速本題に入り、Django の MVT アーキテクチャを理解しましょう。
しかしその前に、ここで MVC アーキテクチャについて簡単に説明しておきます。
MVCアーキテクチャとは?
MVCアーキテクチャは、ソフトウェア業界では長い間存在してきました。ほとんどの言語がMVCを採用していますが、コンセプトは同じです。
MVCは、モデル – ビュー – コントローラの略です。
- モデル – モデルは、データベースに格納されているデータのためのインターフェイスを提供します。モデル – データベースに保存されたデータのインターフェイスを提供し、データを維持し、Webアプリケーション全体の論理的なデータ構造を処理する責任があります。
- ビュー – MVCのビューは、ユーザーインターフェイスです。MVCのビューは、ユーザーにモデルデータを表示し、また、ユーザーから情報を取得する役割を担っています。MVC のビューは、 Django のビューと同じではありません。この記事の後半で、その違いを学びます。
- コントローラ – MVC におけるコントローラは、Web アプリケーションの背後にあるロジッ ク全体を担当します。つまり、ユーザがビューを使用して Http リクエストを発行すると、コントローラはユーザのリクエストを見て、適切なレスポンスを送り返します。
Django は Web アプリケーションで独自のロジックを実装することを好み、それゆえ、 そのフレームワークは全てのコントローラの部分を自分自身で処理します。
そのため、Django は MVT (Model – View – Template) アーキテクチャと呼ばれる、異なる種類のアーキテクチャを実装しています。
Django の MVT アーキテクチャは何ですか?
MVT アーキテクチャは、Django Web フレームワークで使われているソフトウェ アデザインパターンです。
MVT は Model – View – Template の略です。
1)モデル
MVCのモデルと同じように、ここでもデータベースに格納されたデータのためのインターフェイスを提供するという同じ機能を持ちます。
2) テンプレート
MVC の View と同じように、Django はフレームワークの中でテンプレートを使って います。テンプレートはユーザインタフェース全体を完全に担当します。ウェブページを訪れるユーザが知覚する HTML と共に、ウェブページの全ての静的な部分を扱います。
3)再生回数
Django では、ビューはモデルデータとテンプレートの間のリンクとして動作します。
注意: MVC におけるコントローラのように、 Django MVT におけるビューは、 Web アプリの背後にある全てのビジネスロジックを処理する責任があります。ビューはモデルとテンプレートの間の橋渡しとして動作します。
ユーザのリクエストを見て、データベースから適切なデータを取得し、取得したデータと共にテンプレートをレンダリングして返します。
したがって、 Django の MVT アーキテクチャには独立したコントローラは存在せず、全ては Model -View -Template 自身に基づいており、それゆえ MVT という名前がついています。
この記事もチェック:DjangoでのMySQLの使い方|インストールや接続、データ取得等を解説
MVTの制御フロー
ここでは、上図に示すように
- ユーザは Django にリソースに対する URL リクエストを送信します。
- Django フレームワークは URL のリソースを検索します。
-
- URL のパスが View にリンクしている場合、その特定の View が呼び出されます。
-
- View は Model と対話し、データベースから適切なデータを取得します。
-
- View は、取得したデータとともに、適切なテンプレートをユーザーにレンダリングします。
結論
以上、みんな! これは Django の MVT アーキテクチャのすべてでした。それぞれの詳細については、 Django Models, Views, and Templates の記事を参照してください。コーディングを続けましょう!