Ответ 1
Вы можете сделать это просто так: путь Python:
{{ '%04d' % 42 }}
{{ 'Number: %d' % variable }}
Или используя этот метод:
{{ '%d' | format(42) }}
Я лично предпочитаю первый, так как он точно так же, как в Python.
Мне нужно форматировать десятичные числа в jinja2.
Когда мне нужно отформатировать даты, я вызываю метод strftime() в своем шаблоне, например:
{{ somedate.strftime('%Y-%m-%d') }}
Интересно, есть ли подобный подход для этого по числам.
Спасибо заранее!
Вы можете сделать это просто так: путь Python:
{{ '%04d' % 42 }}
{{ 'Number: %d' % variable }}
Или используя этот метод:
{{ '%d' | format(42) }}
Я лично предпочитаю первый, так как он точно так же, как в Python.
Я хочу выделить комментарий Джорана Бисли, потому что я считаю это лучшим решением:
Исходный комментарий:
не можете ли вы {{ "{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
.
Вы можете использовать круг, это позволит вам округлить число до заданной точности использование:
round(value, precision=0, method='common')
Первый параметр указывает точность (по умолчанию 0), второй метод округления, из которого вы можете выбрать 3:
'common' rounds either up or down
'ceil' always rounds up
'floor' always rounds down
Форматирование и дополнение работают одинаково.
{{ "{0}".format(size).rjust(15) }}