Django MVC
Django MVC
前回までの記事で、アプリケーション作成まで進みましたが、まだ何の機能も持っていません。
機能を実装していく前に、まずは何を作るのかを考えてみましょう。
Web App
Djangoを使うわけでですから、データベースとかも使うようなそれなりのWebアプリケーションを作るんだろうなーって思ってますが、皆さんそれでよいですよね?
個人用のホームページ作りたい!とかいう人がいたら、回れ右でお願いしますm(__)m
アプリケーションって一言で言っても、複数の形態があります。
主に、アプリケーションの提供方法によって分類できます。
- デスクトップアプリケーション
- スマートフォンアプリケーション
- クライアントサーバ型アプリケーション
- Webアプリケーション
デスクトップアプリケーションで一番イメージをしてもらいやすいのは、メモ帳です。
デスクトップ上で、スタンドアロンで動きます。
スマートフォンアプリケーションもパソコンがスマートフォン変わっただけで、同じくメモ帳のようなものをイメージする人が多いのではないでしょうか?
これらのように、アプリケーションそのものをインストールしてクライアントマシン上で動くものをネイティブアプリと呼んだりします。
こういうのが作りたいっていう人も、回れ右しましょう。
次に、クライアントサーバ型アプリケーションとWebアプリケーションです。
これは、サーバマシン上で動くアプリケーションを、ユーザが使用します。
Webブラウザを介さない場合は特に、クライアントサーバ型アプリケーションと呼ぶことが多いです。
要するに、ひとつのマシンに色んな人がアクセスして使うアプリケーションです。
そして、DjangoはWebアプリケーションを作成するのに使います。
Web アプリケーション = ひとつのマシンで動くアプリをブラウザを介してみんなで使うアプリケーションです。
MVC
次に、MVCというものの説明をしていきます。
MVCというのは、Webアプリケーションを構成する各種機能を、どう分類するかという考え方のことです。
Webアプリ作りたい!と思ったら結構目にするキーワードではないでしょうか。
はじめに
ご自身がWebアプリケーションを使用するケースを思い浮かべてください。
恐らくですが、こんな感じですよね?
- メニューから使いたい機能を選択する
- 以前に登録したデータなどが表示される
- 既存のデータを操作して保存ボタンを押す
MVCっていうのは、これらの機能を役割分担しながら提供しまっせっていう考え方です。
V = View (T = Template)
まずはView(ビュー)の部分からいきましょう。
Viewって名前からも察してもらえるかもしれませんが、ユーザの目に触れる部分です。
厳密には違うのですが、HTMLファイルみたいなもんと思ってください。
そして、これがとても重要なのですが、、、
一般的には V ですが、DjangoではT = Templateという名称になっています。
名称がちょっと違うんですよね..
お気をつけください..
M = Model
このModel(モデル)というのは少し難しい部分です。
よくモデリングという言葉がソフトウェア設計で使われるのですが、このモデリングで作るものがModelです。
モデリングとは、荒っぽくいうとユーザのデータや振る舞いなどを、データ構造へと落とし込む行為です。
なので、ここでのModel(モデル)というのは、データ構造の定義と思ってください。
C = Controler
最後にControler(コントローラ)ですね。
これはTemplateとModelを関連付ける機能となります。
どういうことかというと、、
ユーザはURLにアクセスして、機能の使用を要求してきます。
Webアプリケーションは、Modelの内容をTemplateに渡して、最終的な画面をクライアントのWebブラウザへと送信します。
以上で今回の内容はおわりです。
次回以降は、この内容を念頭に置いたうえで、アプリケーションに機能を実装していきます。
お疲れ様でした。
Author And Source
この問題について(Django MVC), 我々は、より多くの情報をここで見つけました https://qiita.com/Shirokuma_0607/items/e12ae700110bca844831著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .