DjangoでModelからTemplatesにデータを渡す方法と考え方

この記事は約 3 分で読めます。

みなさんこんにちは!ひろぽんです!

今回はPythonのWebフレームワークDjangoで、ModelからTemplatesにデータを渡すミニマムの方法について書いていこうと思います!

前提としてアプリの追加、ルーティングの設定はしているものとします!

この記事ではModelの定義⇒viewの定義⇒templatesへの反映までを書いていきたいと思います!

Modelの定義

まずはDjangoで使うModelの定義をします!

今回書いていくのはTemplatesにデータを送る例なので比較的簡単なModelにしておきます!

ではModelを定義

from django.db import models

class Student(models.Model):
    name = models.CharField(max_length=20)
    age = models.IntegerField()

とりあえず生徒の一覧を簡単に。めちゃくちゃ簡単に管理するModelを定義しました!

名前と年齢だけという、一体何に使うんだというModelです!

でもミニマムでの説明なので、一旦はこれでいいでしょう!

View.pyの編集

では次に上記のModelを使うview.pyを書いていきましょう

templates⇒student⇒index.htmlがあると想定して書くと以下のようになります。

from django.shortcuts import render

// ここでモデルのインポートをする。
from .model import student


def index(request):

// Studentsモデルのデータを全件取得する。
// Templatesではstudentsで使える。
studentModel = {'students': Students.objects.all()}

    return render(request,'student.index.html',studentModel)

とりあえずここまででModelとViewでデータを渡す準備はできました!

あとはTemplatesでデータを受け取るだけです!

Templatesでデータを受ける

templatesはhtmlファイルなのでみなさんお馴染みの書き方ですね!

<HTML>
<BODY>
{{ Students }}
</BODY>
</HTML>

これで一応データは出力されます。
データを順に取り出し表示したい場合は以下のように書くといいでしょう。

<HTML>
<BODY>
<ul>
{% for student In Students %}
    <li>名前:{{student.name}}年齢:{{student.age}}</li>
{% endfor %}
</ul>
</BODY>
</HTML>

これできれいなリストで表示ができるはずです!

まとめ

今回すごく簡単にミニマムでDjangoのModelからTemplatesにデータを渡す方法を書いてきました!

今現在私がDjangoを学んでいるということもあり、備忘録的な感じで書きましたが、いかがでしょうか!

単一テーブルをTemplatesに表示するだけなら、割と簡単にできると思いますが、これに複数テーブルのリレーションとかいろいろ合わさってくるとなかなか難しくなってくるのかもしれません!

頑張っていきましょう!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA