PythonのJinja2に独自フィルターを設定する方法

PythonのJinja2には既存でフィルターと呼ばれる機能で、HTML文字列をエスケープしてくれたり、文字列を大文字、小文字変換してくれるものがあります。

今回は独自のフィルターを作成し、templateから呼び出す方法を解説します。

スポンサーリンク

PythonのJinja2に独自フィルターを設定する方法

PythonのJinja2にカスタム(独自)フィルターを設定するには「@app.template_filter」を利用します。

まずは呼び出し元のHTMLから

今回は「str_add 」というカスタム(独自)フィルターを作成し、与えられた文字列の前後に文字を付加します。

次にカスタム(独自)フィルター部分のPythonのソース。

上記のなかで「@app.template_filter」に作成するカスタム(独自)フィルター名を指定し、その下にカスタム(独自)フィルターが指定されたときに呼び出される関数を定義するだけです。

これで「str_add」というカスタム(独自)フィルターが利用できるようになります。

このソースのを実行するには

とコマンドを実行し、ブラウザーから

とアクセスするだけです。

結果はページに「<<<<<この前後に文字が付加されます。>>>>>」と表示されればOKです。

まとめ

PythonのJinja2にカスタム(独自)フィルターを設定するには「@app.template_filter」デコレーターを利用すれば簡単に作成することができます。

これでテンプレート側だけでは難しい処理もPythonの処理を呼び出せるのと同じになるので、ずっとやりやすくなります。

以上、PythonのJinja2に独自フィルターを設定する方法でした。

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