【基礎】Django/MTVモデルを知って効率的にWebアプリが作ろう

「Django使い始めたけど、MTVってなに?ぜんぜん分からない...」MTVってそれぞれの役割を分かりやすく3つにした考えかた。

使えるようになると、分かりやすくて修正しやすいWEBアプリを作成可能。さて、じゃあMTVの考えかたを話していこうか。

DjangoのMTVモデルっていったいなんなの?

・Model、Template、View頭文字を取ってMTV

  • Model(モデル)【データをどのように保管するかの役割】
  • Template(テンプレート)【Web上の見た目をつくる役割】
  • View(ビュー)【情報を処理してどのような情報を見せるかの部分】

Modelとは?: データをどのように保管するかの役割

Modelの役割は、データベース(データをどのように保管するか)の役割。データベースの知識がそんなに無くても、簡単に作れて、編集、削除も可能

たとえば会員登録させたいときや、アンケートをとってその回答を保存しておきたいときに使える。

「Modelについてもっと知っておきたい」って思ったら【入門】Django/models.pyの書きかた使いかたをどうぞ。

・DjangoのModelコードサンプル

class User(models.Model):
    username = models.CharField(max_length=20, default='ziyuss')
  • Userという名前(テーブル名)
  • usernameという名前(フィールド名)
  • 型式はChar型(1文字以上を入れられる型)
  • 文字の長さは20文字まで
  • デフォルトの文字はziyuss

Templateとは?: Web上の見た目をつくる役割

TemplateはWeb上の見た目部分をつくって表示させる役割。

次に紹介するViewという役割のところから処理されたデータをもってきて表示させる。まあ、使うのは半分くらいHTML・CSSになるけど(笑)

・IF文、For文も使える
IF文やFor文も使うことが可能。たとえば名前の一覧を表示させたい場合、次のようにすればOK。

{% For name in names %}
  <p>{{ name }}</p>
{% endfor %}

PythonではJinjaっていうテンプレートを基本使います。そう、その神社(笑)

・Jinjaテンプレートのドキュメント
Template Designer Documentation — Jinja Documentation (2.11.x)でどうぞ。

Viewとは?: 情報を処理してどのような情報を見せるかの役割

情報を受け取って、情報を処理にそってどう見せるか判断する役割。Modelから受け取ったデータをTemplateに表示させるつなぎ役。

  • 『Model→Template』じゃデータが表示できない
  • 『Model→View→Template』この順番じゃないと表示がされない

他にもURLとつなげる役目だったり、意外と重要な役割してるのがこのView。Viewを理解すると、DjangoでWEBアプリを作るのがスムーズに。

・ちょっとViewに興味でてきた?
【入門】Django/views.pyの役割と書きかたで解説してるのでどうぞ。

まとめ: 3つを理解してWEBアプリ作成を楽しく

  • Model(モデル)【データをどのように保管するかの役割】
  • Template(テンプレート)【Web上の見た目をつくる役割】
  • View(ビュー)【情報を処理してどのような情報を見せるかの部分】

上記のModel・Template・View3つがそろってDjangoは成り立ってる。

ちゃんと使えるようになれば、何倍もWEBアプリを作るのが楽しくなるから何回も読み返して使えるようにしていこう。

・理解できてきたかも?
【Django】forms.pyで値を取得→保存するアプリ【チュートリアル】で実際にアプリを作ってみるのもアリ。

本で学習【入門~中級】Pythonを学ぶとき「飛躍的」に成長できる本を紹介

人気記事コードをきれいに書きたい人向け「3日できれいに書ける」たった1冊本とは?