Подтвердить что ты не робот

Есть ли прямой подход к форматированию чисел в jinja2?

Мне нужно форматировать десятичные числа в jinja2.

Когда мне нужно отформатировать даты, я вызываю метод strftime() в своем шаблоне, например:

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

Интересно, есть ли подобный подход для этого по числам.

Спасибо заранее!

4b9b3361

Ответ 1

Вы можете сделать это просто так: путь Python:

{{ '%04d' % 42 }}

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

Или используя этот метод:

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

Я лично предпочитаю первый, так как он точно так же, как в Python.

Ответ 2

Я хочу выделить комментарий Джорана Бисли, потому что я считаю это лучшим решением:

Исходный комментарий:

не можете ли вы {{ "{0: 0.2f}". format (my_num)}} или {{my_num | format "% 0.2f" }} (wsgiarea.pocoo.org/jinja/docs/filters. html # format) - Joran Beasley Oct 1 '12 at 21: 07`

Действительно, {{ '{0:0.2f}'.format(100) }} работает фантастически.

Это просто форматирование строки python. Учитывая первый аргумент, {0}, отформатируйте его в следующем формате 0.2f.

Ответ 3

Вы можете использовать круг, это позволит вам округлить число до заданной точности использование:

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

Первый параметр указывает точность (по умолчанию 0), второй метод округления, из которого вы можете выбрать 3:

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

Ответ 4

Форматирование и дополнение работают одинаково.

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