Фильтры Jinja2
Все встроенные фильтры модуля 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/