Utilizando estruturas de condição e repetição no Jinja2 \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 10 Horas 

 57 Min 

 22 Seg 

   Tempo restante da oferta: 10 57 22 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Utilizando estruturas de condição e repetição no Jinja2  [ Flask ](https://www.treinaweb.com.br/blog/categoria/flask) 

# Utilizando estruturas de condição e repetição no Jinja2

 Veja neste artigo como utilizar estruturas de condição e repetição no Jinja2.

 [ Fagner Pinheiro ](https://www.treinaweb.com.br/blog/autor/fagner-pinheiro) 6 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/02/Estrutuas-condicao-repeticao-jinja2.png)  

Vimos no último artigo dessa série como [enviar e exibir variáveis Python](https://www.treinaweb.com.br/blog/como-enviar-e-exibir-dados-em-templates-com-jinja2/ "enviar e exibir variáveis Python") em templates com o Jinja2. Continuando a série, agora veremos como utilizar estruturas de condição e repetição no Jinja2.

## Estruturas de condição

Para utilizar [estruturas de condição](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao-no-python/ "estruturas de condição") no Jinja2 é bem simples. Imagine que temos, em uma variável, a representação de um usuário com seu ID, nome e tipo do usuário (cliente ou funcionário) e queremos exibir em um template a frase “bem-vindo cliente” ou “bem-vindo funcionário” a depender do seu tipo.

Este é um exemplo claro do uso de estruturas condicionais e no Jinja2 este processo é muito simples, como poderemos ver abaixo:

```php
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/teste")
def index():
    usuario = [1, "João da Silva", "funcionario"]
    return render_template('index.html', usuario=usuario)

if __name__ == "__main__":
    app.run()

```

Ao enviar a variável `usuario` para o template `index.html`, agora só é preciso verificar o valor na posição 2 da lista e, assim, verificar seu tipo no Jinja2:

```php

    Title

    {% if usuario[2] == "cliente" %}
        Bem-vindo cliente
    {% else %}
        Bem-vindo funcionário
    {% endif %}

```

Agora, ao acessar o template `index.html` no navegador, teremos o seguinte resultado:

![Utilizando estruturas de condição no Jinja2](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/02/utilizando-estruturas-condicao-jinja2.png)

A sintaxe das estruturas de condição no Jinja2 é bem simples, basta declarar o comando entre `{% %}` e, ao finalizar a estrutura, declarar um `{% endif %}`.

## Estrutura de repetição

O uso de estruturas de repetição também é algo muito simples no Jinja2. Imagine que temos uma lista de nomes de funcionários e queremos percorrê-la para exibir em nossa página.

[  ![Nest.js -  Autenticação e Autorização](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/nest-js.svg)   Curso Nest.js - Autenticação e Autorização Conhecer o curso ](https://www.treinaweb.com.br/curso/nestjs-autenticacao-e-autorizacao)

Para isso, basta utilizar um `for` e percorrer toda a lista exibindo os nomes como podemos ver abaixo:

```php
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/teste")
def index():
    usuarios = ["João da Silva", "Maria da Silva", "Joana da Silva",
                "Pedro da Silva", "José da Silva"]
    return render_template('index.html', usuarios=usuarios)

if __name__ == "__main__":
    app.run()

```

Agora, para exibir o conteúdo da variável `usuarios` no template, utilizamos a seguinte sintaxe:

```php

    Title

    {% for usuario in usuarios %}
        {{usuario}}
    {% endfor %}

```

Agora, ao acessar o template `index.html` no navegador, teremos o seguinte resultado:

![Estruturas de repetição no Jinja2](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/02/estruturas-repeticao-jinja2.png)

As estruturas de repetição facilitam (e muito) quando precisamos exibir diversos dados e não queremos duplicidade de código, já que uma lista será percorrida e, para cada elemento, será impresso seu valor.

## Conclusão

Como vimos neste artigo, o uso de estruturas de condição e repetição no Jinja2 é bem simples e facilita (e muito) a criação dos templates em uma aplicação Flask.

- [ #Flask ](https://www.treinaweb.com.br/blog/tag/flask)
- [ #jinja2 ](https://www.treinaweb.com.br/blog/tag/jinja2)

Autor

 ![Fagner Pinheiro](//secure.gravatar.com/avatar/e622f7c7d686a0b11f8d977ce9725b67?d=mm)

## Fagner Pinheiro

 Professor na TreinaWeb e graduado em Sistemas de Informação pelo Instituto Federal da Bahia. Apaixonado por desenvolvimento web, desktop e mobile desde os 12 anos de idade. Já utilizou todos os sistemas operacionais possíveis, mas hoje se contenta com o OSX instalado em seu desktop. Quando não está trabalhando, é IGL e Awper do time de CS:GO da Treinaweb. Até passou em uma peneira do Cruzeiro, mas preferiu estudar Python. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/fagner-pinheiro)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/12/o-que-e-o-jinja2-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     6 anos atrás

    ##  [ O que é o Jinja2? ](https://www.treinaweb.com.br/blog/o-que-e-o-jinja2) 

     Veja neste artigo o que é e como funciona o Jinja2.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/12/o-que-e-twig-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     6 anos atrás

    ##  [ O que é Twig? ](https://www.treinaweb.com.br/blog/o-que-e-twig) 

     Veja neste artigo o que é Twig.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/12/13150804/template-engine-1-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     7 anos atrás

    ##  [ O que é Template Engine? ](https://www.treinaweb.com.br/blog/o-que-e-template-engine) 

     Veja neste artigo o que é Template Engine e as principais opções do mercado.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/02/ESTRUTURAS-CONDICIONAIS-REPETICAO-JAVASCRIPT-400x280.png)  [ Desenvolvimento Front-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-front-end) 

     6 anos atrás

    ##  [ Estruturas condicionais e estruturas de repetição em JavaScript ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-estruturas-de-repeticao-em-javascript) 

     Neste artigo veremos como utilizar as estruturas condicionais (if, else) e as estruturas de repetição (while, for) no JavaScript.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/03/como-instalar-o-dart-e-executar-seu-primeiro-exemplo-400x280.png)  [ Dart ](https://www.treinaweb.com.br/blog/categoria/dart) 

     6 anos atrás

    ##  [ Estruturas condicionais e de repetição no Dart ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao-no-dart) 

     Neste artigo conheceremos as estruturas condicionais e estruturas de repetição na linguagem de programação Dart.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/01/estruturas-condicionais-e-de-repeticao-no-python-1-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     6 anos atrás

    ##  [ Estruturas condicionais e de repetição no Python ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao-no-python) 

     Neste artigo, conheceremos as estruturas condicionais e de repetição no Python.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/10/ESTRUTURAS-CONDICIONAIS-REPETIÇÃO-400x280.png)  [ Algoritmos ](https://www.treinaweb.com.br/blog/categoria/algoritmos) 

     6 anos atrás

    ##  [ Estruturas condicionais e de repetição ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao) 

     Entenda a função das estruturas condicionais (If - Else) e de repetição (While - For) nos estudos sobre lógica de programação.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/10/o-que-e-e-como-comecar-com-golang-400x280.jpg)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Estruturas condicionais e de repetição na Go ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao-na-go) 

     Veremos nesse artigo sobre quais são e como podemos utilizar as estruturas condicionais e as estruturas de repetição na linguagem Go

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/05/como-instalar-o-csharp-e-nosso-primeiro-exemplo-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     4 anos atrás

    ##  [ Estruturas condicionais e de repetição no C# ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao-no-csharp) 

     Veremos nesse artigo sobre quais são e como podemos utilizar as estruturas condicionais e as estruturas de repetição no C#

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/04/thymeleaf-reaproveitando-codigo-com-fragments-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     6 anos atrás

    ##  [ Thymeleaf - Reaproveitando código com fragments ](https://www.treinaweb.com.br/blog/thymeleaf-reaproveitando-codigo-com-fragments) 

     Neste artigo veremos como utilizar a funcionalidade de fragments da template engine Thymeleaf para reaproveitarmos o código de nossos templates.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/03/THYMELEAF-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     6 anos atrás

    ##  [ O que é o Thymeleaf? ](https://www.treinaweb.com.br/blog/o-que-e-o-thymeleaf) 

     Neste artigo veremos o que é e os principais recursos de uma das template engines mais utilizadas no ecossistema Java, o Thymeleaf.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/05/O-QUE-E-PHP-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     5 anos atrás

    ##  [ Guia da linguagem PHP ](https://www.treinaweb.com.br/blog/guia-da-linguagem-php) 

     Nesse guia de PHP você aprenderá o necessário para criar os seus primeiros softwares com a linguagem de programação PHP. Acesse agora mesmo!

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **10h 57min 22s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
