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

AI活用エンジニアへの道

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

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Flask / Flaskのテンプレートのフィルターを自作する方法についてまとめました

Flaskのテンプレートのフィルターを自作する方法についてまとめました

1 テンプレートフィルターを自作する方法
2 関連記事

テンプレートのフィルター機能について、以前の記事で紹介したが、紹介した内容はビルトインのフィルターで初めからFlaskによって用意されているフィルターである。
ここでは、自分で使いたいようにフィルターを作成する方法について説明する。

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

テンプレートのフィルターを自分で作成するには、@app.template_filterを関数の前にデコレータとして追加する。
そのあと、テンプレート内でそのフィルター名を指定して利用すればよい。

・ビューでフィルターを登録する

@app.template_filter('my_filter') # 追加したいfilterの作成
def my_filter_function(s): # 第一引数がフィルターを適用する変数
return '×××' # フィルターを適用して返す値

・htmlファイルでフィルターを利用する

{{ variable | my_filter }} # 追加したfilterの適用

 
また、自作したフィルターに引数を追加したい場合には、関数に引数を追加すればよい。
以下に、指定したインデックスの文字を大文字にする自作フィルターを作成する方法を記述した。

Example

  • フィルターの作成
from flask import Flask, render_template

app = Flask(__name__)

@app.template_filter('my_upper_filter')
def my_upper_filter(s, idx=0): # idxの位置だけ大文字にして、それ以外はそのまま返す
    return s[:idx] + s[idx].upper() + s[idx+1:]

@app.route('/')
def index():
    name = 'abcdefg'
    return render_template('index.html', name=name)

if __name__ == '__main__':
    app.run(debug=True)

 

  • テンプレートでのフィルターの利用(index.html)
{{ name | my_upper_filter(1) }} <!-- my_upper_filterを第1引数がname, 第2引数が1で実行して返り値(aBcdefg)を表示する -->

このように、ビルトインのフィルターだけでなく、フィルターを自作することもできる。


« Previous

テンプレートのフィルター

Next »

url_forでの画面遷移


Flask入門記事一覧はこちら

関連記事

FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…
Flaskで404, 500などのエラーハンドリングを行う方法についてまとめました
Flaskで404, 500などのエラーハンドリングを行う方…
flaskでリダイレクト処理を行う(flask.redirect)
flaskでリダイレクト処理を行う(flask.redire…
Flaskのテンプレートでurl_forを用いてリンク作成、画像表示を行う。
Flaskのテンプレートでurl_forを用いてリンク作成、…
Flaskのテンプレートのフィルター機能の利用、フィルター一覧
Flaskのテンプレートのフィルター機能の利用、フィルター一…

Primary Sidebar

人気記事

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

特集記事

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

目次

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

Footer

利用規約