Pętle i bloki if w szablonach
Generowanie powtarzających się sekcji konfiguracji.
Pętle i bloki if w szablonach to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Logika znajduje się w {% %}
Poza wyświetlaniem wartości Jinja2 wykonuje logikę sterującą wewnątrz znaczników {% %}. Dzięki temu jeden szablon może generować wiele wierszy. 🔁
Podstawowa pętla for
Użyj pętli for, aby powtarzać wiersze dla elementów listy. Każdy element generuje kolejny blok wyrenderowanego tekstu.
{% for host in backends %}
server {{ host }};
{% endfor %}Zawsze zamykaj bloki
Każdy znacznik otwierający wymaga znacznika zamykającego: endfor kończy pętlę, podobnie jak endif kończy warunek. Pominięcie znacznika zamykającego uniemożliwia renderowanie.
Iterowanie po słowniku
Przechodź po parach słownika za pomocą .items(), przechwytując każdy klucz i wartość, aby renderować uporządkowaną konfigurację.
{% for key, val in settings.items() %}
{{ key }} = {{ val }}
{% endfor %}Zmienna loop
Wewnątrz pętli Jinja2 udostępnia loop.index z bieżącym numerem iteracji oraz loop.first i loop.last jako przydatne wartości logiczne.
{% for s in servers %}
server{{ loop.index }} {{ s }};
{% endfor %}Prosty blok if
Blok if renderuje swoją zawartość tylko wtedy, gdy warunek jest prawdziwy, dzięki czemu opcjonalna konfiguracja pojawia się wyłącznie wtedy, gdy powinna.
{% if enable_ssl %}
ssl on;
{% endif %}if, elif i else
Łącz kolejne możliwości za pomocą elif i końcowego else. Renderowana jest dokładnie jedna gałąź, podobnie jak w Pythonie.
{% if env == 'prod' %}
level = warn
{% else %}
level = debug
{% endif %}Warunki wewnątrz pętli
Umieść if wewnątrz for, aby renderować tylko pasujące elementy, na przykład pomijać wyłączone serwery w puli.
{% for h in hosts %}
{% if h.enabled %}
server {{ h.ip }};
{% endif %}
{% endfor %}Kontrola białych znaków
Pętle mogą pozostawiać puste wiersze. Myślnik, taki jak {%- -%}, usuwa otaczające białe znaki, zapewniając uporządkowany wynik.
{%- for h in hosts -%}
{{ h }}
{%- endfor -%}else w pętli for
Pętla for może zawierać else, które wykona się tylko wtedy, gdy lista była pusta — to idealne miejsce na rozsądny wiersz zastępczy.
{% for h in backends %}
server {{ h }};
{% else %}
# no backends defined
{% endfor %}Znaczniki wyświetlania a logika
Należy je rozróżniać: {{ }} wyświetla wartość, natomiast {% %} steruje przepływem, ale samo niczego nie wyświetla.
Szybki test
Trzeba powtórzyć wiersz konfiguracji dla każdego hosta na liście. Który znacznik rozpoczyna tę pętlę?
Podsumowanie
Można już tworzyć pętle za pomocą for, rozgałęziać logikę za pomocą if, odczytywać loop.index, zagnieżdżać bloki i usuwać białe znaki. Jeden szablon zapisuje teraz dynamiczną konfigurację. ✨
Często zadawane pytania
Czy lekcja „Pętle i bloki if w szablonach” jest bezpłatna?
Tak — pełny tekst „Pętle i bloki if w szablonach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Pętle i bloki if w szablonach”?
Generowanie powtarzających się sekcji konfiguracji. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Pętle i bloki if w szablonach”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Moduł template i pliki .j2
- Zmienne i wyrażenia w Jinja2
- Pętle i bloki if w szablonach
- Filtry: default, join i upper