Приклади використання Jinja2
Пишемо власний фільтр
Шаблонізатор Jinja2 має багато вбудованих фільтрів, серед яких:
capitalize(s)
Переводить першу літеру рядка в верхній регістр, всі інші будуть в нижньому.dictsort(value, case_sensitive=False, by='key')
Дозволяє сортувати словник за ключами або значеннями.filesizeformat(value, binary=False)
Форматує вивід розміру файлу у зрозумілий вигляд (13 kB, 4.1 MB, 102 Bytes).first(seq)
Повертає перший елемент послідовності.round(value, precision=0, method='common')
Округляє значення з заданою точністю звичайний способом округлення (common), завжди до більшого значення (ceil) або до меншого (floor).
Повний список можна знайти в офіційній документації тут.
Фільтр - це звичайна функція, яка приймає ліву сторону як перший аргумент і всі інші параметри як додаткові аргументи. Наприклад, нам потрібно, щоб фільтр додавав до значення знак $, якщо це число, в іншому випадку дописував слово dollars. Так буде виглядати наш фільтр:
1 | def dollars(value): |
Тепер потрібно додати фільтр до нашого середовища - і можна його використовувати:
1 | from jinja2 import Environment, PackageLoader |
В шаблоні сторінки просто пишемо {{ value | dollars }}
1 | template = env.get_template('test.html') |
поверне відповідно one hundred dollars
і 100$
.