Flask

Como enviar e exibir dados em templates com Jinja2

Veja neste artigo como enviar e exibir dados com Jinja2.

cerca de 1 ano atrás

No último artigo, vimos o que é e o quão fantástico é a template engine Jinja2. Vimos que ela facilita (e muito) nosso trabalho quando precisamos criar templates para aplicações Python. Dando continuidade à nossa série de artigos sobre o Jinja2, agora veremos como enviar e exibir dados com Jinja2 em aplicações Flask.

Aplicação base

Vamos utilizar como base a aplicação vista no artigo que explica como retornar páginas HTML em aplicações Flask. É uma aplicação simples que recebe uma requisição e devolve como resposta uma página HTML, todo o processo de criação pode ser visto no artigo citado.

Enviando dados

Agora que já sabemos como retornar arquivos HTML em aplicações Flask, vamos entender como enviar dados para serem exibidos nestes templates.

Flask - Fundamentos
Curso Flask - Fundamentos
Conhecer o curso

Para isso, basta enviar a variável que queremos como podemos ver no código abaixo:

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/teste")
def index():
    nome_da_variavel = "Treinaweb"
    return render_template('index.html', variavel=nome_da_variavel)

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

Como visto acima, para enviar uma variável para um template, basta adicioná-la como parâmetro do método render_template.

Exibindo dados no template

Agora que já sabemos como enviar variáveis para nossos templates, precisamos exibir as informações. Para isso, basta acessar a variável no template da seguinte forma:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>Olá {{variavel}}</h1>

</body>
</html>

Para exibir o valor de uma variável, basta adicioná-la entre chaves duplas {{}}. Com isso, ao acessar a rota /teste teremos o seguinte resultado:

Flask -  Templates com Jinja2
Curso Flask - Templates com Jinja2
Conhecer o curso

Vale lembrar que podemos enviar qualquer tipo de variável, seja uma lista, tupla, etc, como podemos ver abaixo:

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/teste")
def index():
    nome_da_variavel = [1, "Treinaweb"]
    return render_template('index.html', variavel=nome_da_variavel)

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

Para exibir as informações, basta acessar pela posição, como podemos ver abaixo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>Olá {{variavel[0]}} {{variavel[1]}}</h1>

</body>
</html>

Conclusão

Neste artigo, vimo como enviar e exibir dados com Jinja2, recurso que facilita (e muito) o desenvolvimento dos nossos templates. No próximo artigo dessa série, veremos como utilizar estruturas de repetição e condição.

Autor(a) do artigo

Fagner Pinheiro
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

Artigos relacionados Ver todos