0Pricing
Flask Academy · Lección

Bucles y condicionales de Jinja2

Renderice listas y genere marcado condicional en las plantillas.

Bucles y condicionales de Jinja2 es una lección gratuita de Flask Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Flask Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Flask Academy incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Markup That Reacts

Sometimes you must repeat rows or hide a section. Jinja2 adds logic tags so your template can loop and branch over data.

The Statement Delimiter

Logic uses {% %}, not double braces. Braces output a value, while percent tags run control flow like loops and conditions.

A Basic for Loop

Repeat markup with a for loop. Each pass binds the current item so you can print it inside the loop body.

{% for item in items %}
  <li>{{ item }}</li>
{% endfor %}

Loops Must Close

Every block opens and closes. A for loop ends with endfor, which tells Jinja2 exactly where the repeated section stops.

The loop Variable

Inside a loop, Jinja2 gives you a special loop object. Use loop.index for a 1-based counter on each pass.

{% for u in users %}
  {{ loop.index }}. {{ u }}
{% endfor %}

Handling Empty Lists

A for block can include an else branch. It runs only when the list is empty, perfect for a no items message.

{% for t in todos %}{{ t }}{% else %}None yet{% endfor %}

An if Condition

Show markup only when a test passes using if. It ends with endif and accepts ordinary Python-style comparisons.

{% if user %}
  <p>Welcome back</p>
{% endif %}

Adding else

Pair an if with else to handle the other case. One branch renders when true, the other when the test is false.

{% if user %}Hi{% else %}Please log in{% endif %}

Multiple Branches with elif

Chain extra cases with elif. Jinja2 checks each in order and renders the first branch whose test is true.

{% if n > 0 %}+{% elif n < 0 %}-{% else %}0{% endif %}

Combining Loops and Ifs

Nest an if inside a loop to filter as you go. This lets each item decide whether it appears in the output.

{% for p in posts %}{% if p.live %}{{ p.title }}{% endif %}{% endfor %}

Keep Templates Readable

Light logic in templates is fine, but deep nesting hurts. Prepare filtered data in your view to keep markup clean.

Quick Check

Which delimiter does Jinja2 use for control flow like loops and conditionals?

Recap

You can now loop with for, branch with if and elif, use the loop counter, and handle empty lists, all inside templates. Well done! ✨

Preguntas frecuentes

¿La lección «Bucles y condicionales de Jinja2» es gratis?

Sí — el texto completo de «Bucles y condicionales de Jinja2» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Flask Academy, actualiza a CoddyKit PRO. El curso de Flask Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Bucles y condicionales de Jinja2»?

Renderice listas y genere marcado condicional en las plantillas. Practicas Flask Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Flask Academy?

No se requiere experiencia previa. Flask Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Bucles y condicionales de Jinja2»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Flask Academy?

Sí. Cada lección de Flask Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. render_template y la carpeta templates
  2. Pase datos a una plantilla
  3. Bucles y condicionales de Jinja2
  4. Escape automático y el filtro safe
← Volver a Flask Academy