【Django】データベースから取得した値をページに表示する方法

Web

こんにちは!ゆーや(@yuyamanm118712)です。

Djangoを使ってWebアプリケーションを構築する際、データベースから値を取得してページに表示することは非常に一般的な作業です。

この記事では、シンプルな例を使って、データベースからデータを取得し、テンプレートに表示する方法を説明します。

ゆーや
ゆーや

Webアプリを作成するにはDjangoがオススメ!

Djangoの開発環境が作りたい!という方は次の記事を見てね!

データベースから値を取得してページに表示

ゆーや
ゆーや

解説を始めますが、もし「困ったなぁ…」ということがあれば

画面の最下部「もし、困ったら…」を参照してね!

Modelの作成(マイグレーション)とデータの追加

今回は単純なテーブルを作成します。

以下のようにmodels.pyを修正し、マイグレーションしましょう。

from django.db import models

# Create your models here.
class Sample(models.Model):
    text_field = models.TextField(
        verbose_name="テキスト"
    )

    boolean_field = models.BooleanField(
        verbose_name="True/False"
    )

    integer_field = models.IntegerField(
        verbose_name="整数"
    )

    datetime_field = models.DateTimeField(
        verbose_name="日時"
    )
ゆーや
ゆーや

マイグレーションの仕方がわからない方は

以下の記事を参考にしてね!

Viewの作成(ListView)

データベースから値を取得して、一覧表示する場合、「ListView」が便利です!

views.pyを以下のように修正します。

from django.shortcuts import render

# ListViewのインポート
from django.views.generic import ListView
# モデルSampleをインポート
from .models import Sample

# ListViewを継承したクラスを作成
class IndexView(ListView):
    # 表示するHTMLファイルを設定
    template_name = "index.html"
    # 取得した結果を「records」と命名
    context_object_name = "records"

    # テーブルのデータをすべて取得
    model = Sample

HTMLに取得データを渡す

index.htmlを以下のように修正します。

<!DOCTYPE html>
<head></head>
<body>
    <div>
        <h1>Top Page</h1>
        <table border="1"> 
            <tr>
                <td>テキスト</td>
                <td>True/False</td>
                <td>整数</td>
                <td>日時</td>
            </tr>
            <!-- for文で「records」を回す -->
            {% for record in records %}
            <tr>
                <!-- models.pyで定めた各フィールドにアクセス -->
                <td>{{record.text_field}}</td>
                <td>{{record.boolean_field}}</td>
                <td>{{record.integer_field}}</td>
                <td>{{record.datetime_field}}</td>
            </tr>
            {% endfor %}
        </table>
    </div>
</body>

表示を確認

ゆーや
ゆーや

登録したデータがすべて表示されていることが確認できたかな?

もっとクエリを使って値を取得したい…

ゆーや
ゆーや

そんな方は以下の記事を参考にしてね!

【Django】データベースからソートして値を取得する方法
こんにちは!ゆーや(@yuyamanm118712)です。 Djangoでは、データベースから取得したデータを柔軟に操作することが可能です。特に、データを特定の順序で表示することがよくあります。たとえば、ブログの記事を公開日時の降順で表示し...

もし、困ったら…

ゆーや
ゆーや

必要な個所だけ確認してね!

プロジェクト・アプリの作り方って…

デフォルトページじゃなくて、アプリのトップページを表示したいときって…

データの追加の仕方がわからない…

まとめ

この記事では、Djangoを使ってデータベースからデータを取得し、それをテンプレートに表示する方法を紹介しました。

Djangoの強力なORMとテンプレートシステムを活用すれば、シンプルで効率的にデータを操作し、表示することができます。

次のステップとして、フィルタリングや検索機能を追加して、さらに高度なデータの操作を試してみると良いと思います。

ゆーや
ゆーや

フィルタリングや検索機能に興味のある方は、以下の記事を見てみてね!

※記事執筆中です!少々お待ちください。

コメント

タイトルとURLをコピーしました