0Pricing
DevOps Bootcamp · Урок

Циклы и блоки if в шаблонах

Создавайте повторяющиеся разделы конфигурации

«Циклы и блоки if в шаблонах» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Логика находится в {% %}

Помимо вывода значений, Jinja2 выполняет управляющую логику внутри тегов {% %}. Так один шаблон создаёт множество строк. 🔁

Простой цикл for

Используйте цикл for, чтобы повторять строки для элементов списка. Каждый элемент создаёт ещё один блок обработанного текста.

{% for host in backends %}
server {{ host }};
{% endfor %}

Всегда закрывайте блоки

Для каждого открывающего тега нужен закрывающий: endfor завершает цикл, так же как endif завершает условие. Если забыть его, обработка завершится с ошибкой.

Перебор словаря

Перебирайте пары словаря с помощью .items(), сохраняя каждый ключ и значение для создания структурированной конфигурации.

{% for key, val in settings.items() %}
{{ key }} = {{ val }}
{% endfor %}

Переменная loop

Внутри цикла Jinja2 предоставляет loop.index для текущего счётчика, а loop.first и loop.last — удобные логические значения.

{% for s in servers %}
server{{ loop.index }} {{ s }};
{% endfor %}

Простой блок if

Блок if обрабатывает своё содержимое только тогда, когда условие истинно, поэтому необязательная конфигурация появляется только при необходимости.

{% if enable_ssl %}
ssl on;
{% endif %}

if, elif и else

Объединяйте варианты с помощью elif и завершающего else. Обрабатывается ровно одна ветвь, как и в Python.

{% if env == 'prod' %}
level = warn
{% else %}
level = debug
{% endif %}

Условия внутри циклов

Вложите if в for, чтобы обрабатывать только подходящие элементы, например пропускать отключённые серверы в пуле.

{% for h in hosts %}
{% if h.enabled %}
server {{ h.ip }};
{% endif %}
{% endfor %}

Управление пробелами

Циклы могут оставлять пустые строки. Дефисы, например {%- -%}, удаляют окружающие пробелы для аккуратного вывода.

{%- for h in hosts -%}
{{ h }}
{%- endfor -%}

else у цикла for

У цикла for может быть блок else, который выполняется только при пустом списке, что удобно для вывода разумного резервного варианта.

{% for h in backends %}
server {{ h }};
{% else %}
# no backends defined
{% endfor %}

Теги вывода и логики

Различайте их: {{ }} выводит значение, а {% %} управляет потоком выполнения, но сам ничего не выводит.

Быстрая проверка

Вы хотите повторить строку конфигурации для каждого узла в списке. Какой тег запускает такой цикл?

Итоги

Теперь Вы умеете выполнять циклы с помощью for, ветвить логику с помощью if, читать loop.index, вкладывать блоки и удалять лишние пробелы. Один шаблон теперь создаёт динамическую конфигурацию. ✨

Часто задаваемые вопросы

Урок «Циклы и блоки if в шаблонах» бесплатный?

Да — полный текст урока «Циклы и блоки if в шаблонах» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Циклы и блоки if в шаблонах»?

Создавайте повторяющиеся разделы конфигурации Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Циклы и блоки if в шаблонах»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Модуль template и файлы .j2
  2. Переменные и выражения в Jinja2
  3. Циклы и блоки if в шаблонах
  4. Фильтры: default, join и upper
← Назад к DevOps Bootcamp