Функция joiner
Функция joiner доступна внутри шаблонов Jinja и
возвращает специальный объект-разделитель. При каждом
вызове этого объекта возвращается пустая строка, кроме
первого вызова, когда возвращается строка, переданная
параметром. Чаще всего joiner применяется в циклах
для вставки разделителя между элементами. Первым
параметром передаётся строка-разделитель, которая будет
возвращена при первом вызове.
Синтаксис
{% set sep = joiner(separator) %}
{{ sep() }}
Пример
Давайте выведем элементы массива через запятую, используя
функцию joiner:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
arr = ['a', 'b', 'c', 'd', 'e']
return render_template('index.html', arr=arr)
Шаблон для вывода элементов:
{% set comma = joiner(', ') %}
{% for elem in arr %}
{{ comma() }}{{ elem }}
{% endfor %}
Результат выполнения кода:
a, b, c, d, e
Пример
Давайте используем joiner для вывода тегов
<br> между элементами массива:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
arr = ['user', 'article', 'hello']
return render_template('index.html', arr=arr)
Шаблон с разделителем-тегом:
{% set br = joiner('<br>') %}
{% for elem in arr %}
{{ br()|safe }}{{ elem }}
{% endfor %}
Результат выполнения кода:
user<br>article<br>hello