O uso de templates em aplicações Flask é fundamental para a criação de páginas da web dinâmicas e interativas. Os templates permitem que você misture conteúdo estático com dados dinâmicos, facilitando a geração de páginas personalizadas para cada requisição do usuário.
Em Flask, os templates são arquivos HTML que podem conter código Python embutido, permitindo a passagem de variáveis e o uso de estruturas de controle para renderizar dinamicamente o conteúdo da página. A seguir, vou explicar detalhadamente como utilizar os templates em aplicações Flask:

-
Estrutura do projeto Flask:
Antes de começar a trabalhar com templates, é importante organizar sua aplicação Flask da maneira adequada. Geralmente, os templates são armazenados em um diretório chamadotemplates
na raiz do seu projeto Flask. Você pode criar esse diretório manualmente e colocar seus arquivos HTML lá. -
Instalação do Flask:
Para utilizar o Flask e seus recursos, é necessário instalá-lo primeiro. Você pode fazer isso facilmente usando o pip, o gerenciador de pacotes do Python. Basta executar o seguinte comando no seu terminal:pip install Flask
-
Criando um template:
Depois de configurar a estrutura do projeto, você pode criar seus templates HTML. Esses arquivos seguem a estrutura padrão do HTML, mas com a adição de código Python entre as tags{% ... %}
e{{ ... }}
. -
Passando variáveis para o template:
Uma das principais funcionalidades dos templates é a capacidade de passar variáveis do Python para o HTML. Isso é feito usando a funçãorender_template
do Flask. Por exemplo, suponha que você tenha uma variávelnome
que deseja exibir em uma página HTML. Você pode passar essa variável para o template da seguinte maneira:pythonfrom flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): nome = 'João' return render_template('index.html', nome=nome)
No seu template HTML (
index.html
), você pode acessar essa variável da seguinte maneira:html<h1>Olá, {{ nome }}!h1>
Quando o usuário acessar a página inicial da sua aplicação Flask, verá a mensagem “Olá, João!”.
-
Estruturas de controle e condicionais:
Além de simplesmente exibir variáveis, você também pode usar estruturas de controle e condicionais nos seus templates Flask. Por exemplo, você pode usar um loopfor
para iterar sobre uma lista e exibir cada item em uma tabela:html<ul> {% for item in lista %} <li>{{ item }}li> {% endfor %} ul>
Isso renderizará uma lista HTML com cada item da lista fornecida.
-
Herança de templates:
O Flask também suporta herança de templates, o que permite que você defina um template base comum e crie templates filhos que estendem ou substituem blocos específicos desse template base. Isso é útil para manter a consistência visual em toda a sua aplicação. Por exemplo, você pode ter um template base chamadobase.html
que define a estrutura básica do seu site, e outros templates que estendem esse template base adicionando conteúdo específico. -
Filtragem de dados:
Além das estruturas de controle, o Flask também oferece filtros que permitem manipular dados antes de exibi-los no template. Por exemplo, você pode usar o filtrosafe
para renderizar conteúdo HTML sem escapar caracteres especiais, ou o filtrocapitalize
para capitalizar a primeira letra de uma string.
Essas são apenas algumas das funcionalidades oferecidas pelo sistema de templates do Flask. Com essa ferramenta poderosa, você pode criar facilmente interfaces web dinâmicas e atraentes para suas aplicações Python.
“Mais Informações”
Claro! Vamos aprofundar um pouco mais sobre o uso de templates em aplicações Flask e explorar algumas técnicas avançadas:
-
Passagem de múltiplas variáveis para o template:
Além de passar uma única variável para o template, você pode passar várias variáveis, tornando suas páginas da web ainda mais dinâmicas. Por exemplo:python@app.route('/') def index(): nome = 'João' idade = 30 interesses = ['Python', 'Flask', 'Web Development'] return render_template('index.html', nome=nome, idade=idade, interesses=interesses)
E então você pode acessar essas variáveis no seu template HTML da seguinte maneira:
html<h1>Olá, {{ nome }}!h1> <p>Sua idade é {{ idade }} anos.p> <ul> {% for interesse in interesses %} <li>{{ interesse }}li> {% endfor %} ul>
-
Utilizando blocos e herança de templates:
Como mencionado anteriormente, a herança de templates é uma técnica poderosa para criar layouts consistentes em sua aplicação Flask. Você pode definir um template base que contém a estrutura comum de todas as suas páginas e, em seguida, criar templates filhos que estendem ou substituem partes desse template base. Por exemplo, considere o seguinte template basebase.html
:htmlhtml> <html lang="pt"> <head> <meta charset="UTF-8"> <title>{% block title %}Minha Aplicação{% endblock %}title> head> <body> <header> <h1>Minha Aplicaçãoh1> header> <nav> nav> <div id="conteudo"> {% block content %}{% endblock %} div> <footer> footer> body> html>
E então você pode criar um template filho que estende esse template base e substitui o bloco de conteúdo:
html{% extends "base.html" %} {% block title %}Página Inicial{% endblock %} {% block content %} <h2>Bem-vindo à página inicial!h2> <p>Este é o conteúdo da página inicial.p> {% endblock %}
Dessa forma, todas as páginas que estendem o template base terão automaticamente a mesma estrutura comum, mas podem personalizar o conteúdo conforme necessário.
-
Tratamento de formulários:
Uma parte importante de muitas aplicações web é a interação com o usuário por meio de formulários. O Flask oferece suporte para lidar com formulários de maneira eficiente. Você pode criar formulários HTML em seus templates e processar os dados enviados pelo usuário em rotas Flask. Por exemplo:pythonfrom flask import Flask, render_template, request app = Flask(__name__) @app.route('/formulario', methods=['GET', 'POST']) def formulario(): if request.method == 'POST': nome = request.form['nome'] email = request.form['email'] # Processar os dados do formulário return f'Nome: {nome}, Email: {email}' return render_template('formulario.html')
E no seu template
formulario.html
, você pode criar um formulário HTML simples:html<form action="/formulario" method="post"> <label for="nome">Nome:label> <input type="text" id="nome" name="nome"><br> <label for="email">Email:label> <input type="email" id="email" name="email"><br> <input type="submit" value="Enviar"> form>
Quando o usuário preencher o formulário e enviar os dados, o Flask irá processar esses dados e executar a função associada à rota
/formulario
, onde você pode realizar as operações necessárias, como armazenar os dados em um banco de dados ou enviar um e-mail de confirmação.
Essas são apenas algumas das técnicas avançadas que você pode utilizar ao trabalhar com templates em aplicações Flask. Combinando essas técnicas com outras funcionalidades do Flask, como rotas, blueprints e extensões, você pode criar aplicações web poderosas e flexíveis em Python.