• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / Djangoのテンプレートフィルターの利用と独自のテンプレートフィルターを作成する方法

Djangoのテンプレートフィルターの利用と独自のテンプレートフィルターを作成する方法

1 Djangoでテンプレートの組み込みテンプレートフィルターを作成する
2 テンプレートフィルターを自作する
3 関連記事


Djangoでテンプレートの組み込みテンプレートフィルターを作成する

Djangoには、テンプレート内で値を修正する機能がある。これを、組み込みのテンプレートフィルターと言う。

例えば、テンプレート内で、{{ 'text'|upper }}とすると画面上でTEXTと大文字で表示される。

このupperが大文字にするタグフィルターである。

以下のように記述する。

  • テンプレート(index.html)
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
<title>INDEX</title>
    </head>
<body>
    <h1>Welcome</h1>
    <h2>Hello World</h2>
    <h1>{{ 'hello'|upper }}</h1> <!-- タグフィルターの利用 -->
</body>

他の組み込みタグには、公式ドキュメント参考

また、独自に組み込みテンプレートフィルターを定義することもできる。


テンプレートフィルターを自作する

組み込みタグの定義には、以下のようにする。

  1. アプリケーションのフォルダ内に、templatetagsというフォルダを作成する
  2. templatetagsフォルダ内に__init__.pyを作成する
  3. フィルターを定義するファイルを作成して関数を記述し、templateライブラリーのregisterで登録する
  4. 上記のファイルをテンプレート上で、load関数を用いてインポートして用いる
  • アプリケーションフォルダ内にtemplatetagsフォルダと__init__.pyを作成する(__init__.pyには何も記述しなくてよい)

  • extra_tag.py(テンプレートフィルターを自作するファイル)を作成して関数を登録する

# extra_tag.py
from django import template

register = template.Library() # 組み込みタグを登録用のオブジェクト
@register.filter(name='cut_filter') # 関数を登録する

def cut_filter(value, arg): # 関数を作成する。argは組み込み関数の引数
    return value.replace(arg, '') # 文字列valueからargを削除して返す

  • templates/basicapp/index.html
<!DOCTYPE html>
<html lang="ja">
<head>
{% load extra_tag %} <!-- 作成したextra_tag.pyが読み込まれる -->
    <meta charset="UTF-8">
    <title>INDEX</title>
</head>
<body>
    <h1>Welcome</h1>
    <h2>Hello World</h2>
    <h1>{{ 'Hello World'|cut_filter:'Hello' }}</h1>
<!-- extra_tag.pyのcut_filter関数にcut_filter('Hello World', 'Hello')として呼び出し、返されたreturnの値が表示される -->
  • 表示結果(3番目のHello Worldがcut_filter:'Hello'の結果Worldだけになる)

詳細はこちらのドキュメント参照

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 Djangoでテンプレートの組み込みテンプレートフィルターを作成する
2 テンプレートフィルターを自作する
3 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約