web-dev-qa-db-ja.com

jinja2で数値をフォーマットする直接的な方法はありますか?

Jinja2で10進数をフォーマットする必要があります。

日付をフォーマットする必要がある場合、次のようにテンプレートでstrftime()メソッドを呼び出します。

{{ somedate.strftime('%Y-%m-%d') }}

数字を超えてこれを行うための同様のアプローチがあるのだろうか。

前もって感謝します!

39
Lucas

Python方法:

{{ '%04d' % 42 }}

{{ 'Number: %d' % variable }}

またはその方法を使用します:

{{ '%d' | format(42) }}

私は個人的に最初の方が好きです。Pythonの場合とまったく同じだからです。

61
Lipis

Joran Beasleyのコメントを強調したいのは、それが最良の解決策だと思うからです。

元のコメント:

{{"{0:0.2f}"。format(my_num)}}または{{my_num | format "%0.2f"}}(wsgiarea.pocoo.org/jinja/docs/filters.html#format )–ジョランビーズリー12年10月1日21:07`

実際、{{ '{0:0.2f}'.format(100) }}は素晴らしく機能します。

これはpython文字列のフォーマットです。最初の引数{0}、次の形式でフォーマットします0.2f

34

ラウンドを使用すると、指定された精度の使用法に数値を丸めることができます:

 round(value, precision=0, method='common')

最初のパラメーターは精度(デフォルトは0)を指定し、2番目のパラメーターは3から選択できる丸め方法を指定します。

'common' rounds either up or down
'ceil' always rounds up
'floor' always rounds down
10
Tkingovr

フォーマットとパディングは同じように機能します。

{{ "{0}".format(size).rjust(15) }}
5