Promoção no ar
Tempo restante da oferta:
12 Horas
16 Min
30 Seg
Assinar →

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 6 anos atrás

Vimos no último artigo dessa série como 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 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:

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:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% if usuario[2] == "cliente" %}
        Bem-vindo cliente
    {% else %}
        Bem-vindo funcionário
    {% endif %}
</body>
</html>

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

Utilizando estruturas de condição no Jinja2

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.

Curso Ruby on Rails - Testes unitários Conhecer o curso

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

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:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% for usuario in usuarios %}
        <h1>{{usuario}}</h1>
    {% endfor %}
</body>
</html>

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

Estruturas de repetição no Jinja2

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.

Continue lendo

Artigos relacionados

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 12h 16min 30s

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