2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FlaskでContext Processorsを使用する方法

Last updated at Posted at 2020-03-15

概要

テンプレートで共通で使いたい変数や関数を定義するのためには、Context Processorsが便利です。

変数編

例えば、今日の日付をテンプレートで表示したい場合は、以下のようなContext Processorを定義しておくと、毎回テンプレートに渡す必要がなくなるので、便利です :smile:

@app.context_processor
def jst_today():
    from datetime import datetime, timedelta, timezone
    JST = timezone(timedelta(hours=+9), 'JST')
    jst_today = datetime.now(JST).strftime('%Y/%m/%d')
    return dict(jst_today=jst_today)

テンプレートでは以下のようにして、今日の日付を表示することができます。

{{ jst_today }}

関数編

数字に通貨の単位をつけて返す関数は、以下のようにして定義しておくと便利です。

@app.context_processor
def utility_processor():
    def format_price(amount, currency=u''):
        return u'{0:.2f}{1}'.format(amount, currency)
    return dict(format_price=format_price)

テンプレートでは以下のように呼び出すことができます。

{{ format_price(100) }}

参考

[1] https://flask.palletsprojects.com/en/1.1.x/templating/#context-processors

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?