ホームページ >バックエンド開発 >Python チュートリアル >Django でカスタム テンプレート タグを作成するには?

Django でカスタム テンプレート タグを作成するには?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-27 08:10:10569ブラウズ

djangoテンプレートラベル:簡略化されたデータが表示され、コードの再利用

Django開発では、テンプレートを使用してデータをHTMLページにレンダリングします。この記事では、Djangoテンプレートタグを使用してデータを簡素化してロジックを表示する方法を紹介します。ビューで繰り返しコードを作成しないようにします。

djangoテンプレート基本例

シンプルなコースリストHTMLテンプレートがあると仮定すると:

How to Create Custom Template Tags in Django?

対応するビューコードは次のとおりです

ビューはカリキュラムデータをテンプレートに渡し、Webページは次のように最終的に表示されます。 How to Create Custom Template Tags in Django?

質問:コースの総数を示します

さて、Webページに合計コースを表示する必要があるとします。 1つの方法は、ビューに計算ロジックを追加することです。 How to Create Custom Template Tags in Django?

しかし、あなたのウェブサイトに複数のページ(ブログページ、著者ページ、講師ページなど)がある場合、コースの総数を表示する必要があり、このロジックには本質が必要ですこの時点で、Djangoテンプレートラベルは便利でした。

テンプレートラベルとは何ですか?

要するに、Djangoテンプレートラベルは、Djangoテンプレートシステムにカスタム関数を追加できる特別なラベルです。コードの再利用を改善し、ビューで同じロジックを繰り返し作成することを避けることができます。

<code class="language-python">def course_list(request):
    total_courses = Course.objects.count()
    return render(request, 'courses.html', {'courses': courses, 'total_courses': total_courses})</code>
なぜテンプレートタグを使用するのですか?

カリキュラムアプリケーションが次のデータを表示する必要があると仮定します。

合計コース番号

利用可能なコース

登録された学生の数

各ビューに計算ロジックを追加する代わりに、テンプレートタグを使用して操作を簡素化することをお勧めします。
  • ステップ1:テンプレートラベルを作成
  • TemplateTagsフォルダーの作成:
  • フォルダーの作成:
  • フォルダー:

フォルダー構造は次のとおりです

ファイルで、コースの数、有用なコースの数、登録学生の数を定義します。
  1. ステップ2:テンプレートのテンプレートラベルをロードして使用 templatetagsここで、これらのカスタムタグをHTMLテンプレートにロードして使用して、関連データを表示できます。
例1:コースリストページにコースの合計を表示

テンプレートでは、カスタムタグを読み込み、それらを使用してコースと利用可能なコースの総数を表示します。
<code>   courses/
       ├── templatetags/
           ├── __init__.py
           └── course_tags.py</code>
このテンプレートは
    に表示されます
  1. course_tags.py合計コース番号
  2. 利用可能なコース
<code class="language-python">from django import template
from courses.models import Course

register = template.Library()

@register.simple_tag
def total_courses():
    return Course.objects.count()

@register.simple_tag
def available_courses():
    return Course.objects.filter(is_available=True).count()

@register.simple_tag
def enrolled_students(course_id):
    course = Course.objects.get(id=course_id)
    return course.enrolled_students.count()</code>

例2:コースの詳細ページで、登録された学生の数

コースの詳細ページでは、

テンプレートラベルを使用して、特定のコースに登録された学生の数を表示できます。
<code class="language-python">def course_list(request):
    total_courses = Course.objects.count()
    return render(request, 'courses.html', {'courses': courses, 'total_courses': total_courses})</code>

enrolled_students タグは course.id をパラメータとして受け取り、コースに登録されている学生の数を返します。

テンプレートタグを使用する利点

  1. テンプレート タグを定義した後は、各ビューで同じロジックを繰り返し記述することなく、アプリケーション内の複数の場所で再利用できます。
  2. コース数の計算方法を変更する必要がある場合は、各ビューやテンプレートを変更せずに、テンプレート タグを更新するだけです。

最終出力

How to Create Custom Template Tags in Django?

結論

この記事では、ビューにコースと生徒数を追加するロジックの重複を避けるために、Django でテンプレート タグを使用する方法を例を通して説明します。テンプレート タグにより、コードの再利用性と保守性が向上します。


連絡先 - @syedamahamfahim ?

以上がDjango でカスタム テンプレート タグを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。