メニュー

djangoのテンプレートの作成とヘッダー・フッターの共通化

テンプレートの基本

アプリケーションディレクトリ直下にtemplatesディレクトリを作成しましょう。

templatesディレクトリ内に以下のindex.htmlを作成します。

{% if item_list %}

    <ul>

    {% for item in item_list %}

        <li>{{ item }}</li>

    {% endfor %}

    </ul>

{% else %}

    <p>No item.</p>

{% endif %}

 

templateに値を渡すviewを作成しましょう。

アプリケーションディレクトリ直下のviews.pyに以下の記述をしましょう。

from django.shortcuts import render

def index(request):

    item_list = ['a', 'b', 'c']

    template = loader.get_template('index.html')

    context = {

        'item_list': item_list,

    }

    return render(request, 'index.html', context)

indexにリクエストするとテンプレートを表示することが出来ます。

 

テンプレートの共通化

ヘッダーやフッターといったテンプレートの共通部分を実装するには以下のようにします。

以下、共通部分となるbase.htmlです。

<!DOCTYPE html>

<html lang="ja">

        <head>

                <meta charset="UTF-8">

                <title>{% block title %}{% endblock title %}</title>

        </head>

        <body>

                {% block content %}

                {% endblock %}

        </body>

</html>

 

独自実装の部分は

        {% block content %}

        {% endblock %}

となります。

{% block title %}{% endblock title %}

は後述します。

 

以下、独自実装部分のテンプレートです。

{% extends "base.html" %}

{% block title %}ページタイトル{% endblock title %}

{% block content %}

    <form method="post">

        {% csrf_token %}

        ...

    </form>

{% endblock %}

extendsで共通テンプレートを読み込んでblock content内に独自実装部分を記載します。

ページごとにタイトルを変える必要があるので、block titleに対してページのタイトルを設定しましょう。


子記事一覧
子記事はありません

同階層の記事一覧
  1. Templateの使用準備
  2. Templateの定義方法
  3. テンプレートの作成と共通化
  4. setting.pyにおけるテンプレートの設定
  5. テンプレートの名前の重複について
  6. if文


▼ 詳細情報 ▼
▼ 過去バージョン ▼



最近コメントのあった記事

コメント一覧


コメントがありません