РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
222 of 643 menu

Функция cycler

Функция cycler применяется внутри Jinja-шаблонов и создаёт специальный объект-циклер. Первым параметром передаётся имя переменной, вторым - последовательность значений. При каждом обращении к атрибуту с этим именем возвращается следующее значение, а когда значения заканчиваются, перебор начинается сначала.

Также можно передать несколько пар «имя - последовательность», и функция вернёт объект с несколькими атрибутами, которые перебираются независимо друг от друга.

Синтаксис

{{ cycler(name, seq) }} {{ cycler(name1, seq1, name2, seq2, ...) }}

Пример

Давайте создадим циклер с именем row и последовательно выведем его значения:

{% set rows = cycler('row', ['a', 'b', 'c']) %} <p>{{ rows.row }}</p> <p>{{ rows.row }}</p> <p>{{ rows.row }}</p> <p>{{ rows.row }}</p>

Результат выполнения кода:

<p>a</p> <p>b</p> <p>c</p> <p>a</p>

Пример

Давайте используем циклер для чередования классов строк таблицы:

from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): items = ['a', 'b', 'c', 'd', 'e'] return render_template('index.html', items=items)
{% set rows = cycler('cls', ['odd', 'even']) %} <table> {% for item in items %} <tr class="{{ rows.cls }}"> <td>{{ item }}</td> </tr> {% endfor %} </table>

Результат выполнения кода:

<table> <tr class="odd"><td>a</td></tr> <tr class="even"><td>b</td></tr> <tr class="odd"><td>c</td></tr> <tr class="even"><td>d</td></tr> <tr class="odd"><td>e</td></tr> </table>

Пример

Давайте создадим циклер сразу с двумя атрибутами row и col:

{% set c = cycler('row', ['a', 'b'], 'col', [1, 2, 3]) %} <p>{{ c.row }} - {{ c.col }}</p> <p>{{ c.row }} - {{ c.col }}</p> <p>{{ c.row }} - {{ c.col }}</p> <p>{{ c.row }} - {{ c.col }}</p>

Результат выполнения кода:

<p>a - 1</p> <p>b - 2</p> <p>a - 3</p> <p>b - 1</p>

Смотрите также

  • функцию joiner,
    которая соединяет значения разделителем
  • функцию namespace,
    которая создаёт объект с произвольными атрибутами
  • тег set,
    который присваивает значение переменной в шаблоне
  • тег for,
    который перебирает элементы последовательности
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить