Фильтры Jinja2

Материал из melioration.space

Все встроенные фильтры модуля Jinja2

  • abs() возвращает абсолютное значение,
  • attr() возвращает атрибут объекта по имени,
  • batch() делит исходную последовательность на списки с заданным количеством элементов,
  • capitalize() преобразует первый символ строки в верхний регистр,
  • center() центрирует значение в поле заданной ширины,
  • default() возвращает значение по умолчанию, если переменная не определена,
  • dictsort() сортирует словарь,
  • escape() экранирует HTML,
  • filesizeformat() форматирует значение как размер файла,
  • first() возвращает первый элемент списка,
  • float() преобразует значение в float,
  • forceescape() принудительно экранирует HTML,
  • format() форматирует строку в стиле printf,
  • groupby() группирует последовательность объектов по атрибуту,
  • indent() делает отступы для каждой строки,
  • int() преобразует значение в int,
  • join() объединяет список строк в одну строку,
  • last() возвращает последний элемент списка,
  • length() возвращает количество элементов в контейнере,
  • list() преобразует значение в список,
  • lower() преобразует строку в нижний регистр,
  • map() извлекает определенный атрибут из списка объектов,
  • max() возвращает максимальный элемент списка,
  • min() возвращает минимальный элемент списка,
  • pprint() красиво печатает переменную,
  • random() возвращает случайный элемент из списка,
  • reject() фильтрует последовательность, исключая те элементы, для которых тест вернул True,
  • rejectattr() фильтрует список объектов, исключая те объекты, для которых тест атрибута объекта вернул True,
  • replace() заменяет подстроку в строке на новое значение,
  • reverse() переворачивает последовательность/контейнер,
  • round() округляет число до заданной точности,
  • safe() отменяет автоматическое экранирование HTML,
  • select() фильтрует последовательность, исключая те элементы, для которых тест вернул False,
  • selectattr() фильтрует список объектов, исключая те объекты, для которых тест атрибута объекта вернул False,
  • slice() делит исходную последовательность на указанное количество списков,
  • sort() сортирует последовательность,
  • string() преобразует строку в unicode,
  • striptags() удаляет теги HTML,
  • sum() возвращает сумму последовательности чисел,
  • title() все слова начинаются с прописных букв,
  • tojson() преобразует структуру в JSON,
  • trim() удаляет начальные и конечные символы,
  • truncate() возвращает усеченную копию строки,
  • unique() возвращает список уникальных элементов,
  • upper() преобразует строку в верхний регистр,
  • urlencode() преобразует данные для использования в URL,
  • urlize() преобразует текстовые URL-адреса в ссылки,
  • wordcount() считает слова в строке,
  • wordwrap() форматирует строку до заданной ширины,
  • xmlattr() создает атрибуты HTML на основе словаря.

Как применять фильтры к переменным.

В шаблонах Jinja2, переменные могут быть изменены фильтрами. Фильтры отделяются от переменной символом канала '|' и могут иметь необязательные аргументы в круглых скобках. Несколько фильтров могут быть объединены в цепочку. Выход одного фильтра применяется к следующему.

Например, выражение в шаблоне {{ name|striptags|title }} удалит все HTML-теги из переменной name, а так же все слова будут начинаться с заглавной буквы.

Фильтры в шаблонах jinja2 принимают левую часть выражения в качестве первого аргумента, а аргументы, передаваемые в сам фильтр служат дополнительными позиционными или ключевыми аргументами. Например, в выражении шаблона {{ lst|join(', ') }} функция фильтра join() будет вызываться с аргументами attr(lst, ', ').

В шаблонах jinja2 так же можно использовать разделы фильтров, которые позволяют применять фильтры к блоку данных шаблона.

{% filter upper %}
    Этот текст становится прописным
{% endfilter %}

По материалу с сайта https://docs-python.ru/