【基礎】Django/MTVモデルを知って効率的にWebアプリを作ろう
「MTVが理解できると、分かりやすくて修正しやすいWEBアプリを作成可能」

さて、じゃあMTVについて話していこうか。

Model, Template, Viewの頭文字をとってMTV

ざっくり言うなら「なるべくわけて管理しやすくしようぜ。」ってのがMTV

たとえば、会社で営業もマーケティングも商品企画も商品開発もぜんぶやってる人はいないでしょ?営業なら営業、商品開発なら商品開発でわけてるはず。

1人1人に役割をもたせて。WEB開発でもおなじ。わかりやすいレベルまで役割をわけて管理するのがMTV。

MTVそれぞれの役割はつぎのようになる。

  • Model: データをどのように保管するかの役割
  • Template: Web上の見た目をつくる役割
  • View: 情報を処理してどのような情報を見せるか決定する役割

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

Modelはデータベースだと思ってもらえればいい。SQLではなくPythonのコードでデータベースをつくれる。データ追加、取得、削除、更新もできて見やすい。

「コードでデータベースをつくれる」←ORM(オーアールマッパー)とよばれる

たとえば、会員登録させたいとき。

ユーザーを保存しておくデータテーブルをつくりたいとする。データテーブルをつくるPythonコードはつぎのように書く。

class User(models.Model):
    username = models.CharField(max_length=20)
    password = models.CharField(max_length=20)

くわしくは【入門】Django/models.pyの書きかた使いかたで。

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

Templateはまあ、WEBの見た目を作る部分だね。HTMLとか、CSSとかでやってく部分。ここにプラスして

If文やFor文、フィルターなんかのプログラミング要素が追加されたかんじ

たとえば、For文をつかうにはつぎのようにする。

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

なんでFor文, If文が書けるかっていうと、JinjaテンプレートっていうのもをDjangoでつかってるから。Jinjaテンプレートのおかげでたとえば、

  • ブログの投稿リストを少ないHTMLコードでつくれたり
  • ユーザーによってWEBに表示する内容を変えられたり
  • ヘッダーやフッターなど共通部分を1ファイルで管理できたり

それがTemplate。

View: 情報を処理してどのような情報を見せるかの部分

情報を受け取って、情報を処理にそってどう見せるか判断する役割。たとえば、

  • 会員登録したときにユーザーのModelのデータベースに接続とか
  • ログイン時に、フォーム内のユーザー名とパスワードがあってるかとか
  • 消費税の計算をしてTemplateにデータを渡すとか

ModelとTemplate以外の処理はViewに書くって感じ。くわしくは【入門】Django/views.pyの役割と書きかたで。

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

  • Model: データをどのように保管するかの役割
  • Template: Web上の見た目をつくる役割
  • View: 情報を処理してどのような情報を見せるか決定する役割

Model, Template, Viewの3つがそろってMTVだ。使えるようになれば、何倍もWEBアプリを作るのが楽しくなる

何回も読み返して使えるようにしていこう。

たとえば学習として、【Django】forms.pyで値を取得→保存するアプリ【チュートリアル】をやってみるのもアリ。

事務作業を自動化してもっと"ラク"しませんか?

あなたの会社の事務作業...効率化してラクに。もっと重要な業務に集中できるようになります。

日々増えるルーティンの事務作業...
「この作業めんどくさい...」
「事務作業に時間をとられて他に集中できない...」

あなたの代わりにVBAを使ってパソコン業務を自動化。あなたはもっと価値のあることに時間を使うことができるため売上UP、ムダなコストの削減が期待できます。

また、作って終わりではなくつぎの3つのことを約束します。

  • しっかりドキュメント作成
  • きれいな見やすいコードでムダな工数カット
  • できるだけボタン1つポチッと押すだけで業務が完了

どんなにささいなめんどくさい事務作業でも相談してください。相談は無料です。
3年の業務効率化実績があるため、力になれるかもしれません。

※件名には「業務効率化の相談」と記載ください。できるだけ24時間以内に返信します。