Introdução:
Depois de explorar como criar um formulário web e salvar dados em um banco de dados SQLite com Flask, vamos avançar para operações mais complexas. Nesta publicação, nos concentraremos em como listar todos os registros armazenados no banco de dados e como implementar a funcionalidade de deletar registros específicos. Essas são operações essenciais para a maioria dos aplicativos web, permitindo gerenciar eficientemente os dados coletados, caso não tenha visto a primeira parte este é o link da nosssa postagem de Como criar um formulario em Flask e Python parte 1.
Desenvolvimento:
1. Listagem de Registros
Primeiro, vamos criar uma rota para listar todos os registros, vamos criar uma rota /listar para recuperar e exibir todos os registros do banco de dados.
@app.route('/listar')
def listar():
dados = DadosFormulario.query.all()
return render_template('lista.html', dados=dados)
2. Deleção de Registros:
Em seguida, vamos implementar a funcionalidade de deleção, permitindo que os usuários removam registros indesejados do banco de dados, faremos portanto a criação de uma rota /deletar/<id> que permitirá aos usuários deletarem um registro específico baseado em seu ID.
@app.route('/deletar/<int:id>')
def deletar(id):
dado_para_deletar = DadosFormulario.query.get_or_404(id)
db.session.delete(dado_para_deletar)
db.session.commit()
return redirect(url_for('listar'))
3. Criando nosso template HTML para listar e deletar:
Agora vamos criar o nosso template para listagem: No template lista.html, você pode exibir os dados assim, vamos também adicionar um botão de deleção em cada item da lista de registros no template HTML:
<!DOCTYPE html>
<html>
<head>
<title>Lista de Registros</title>
</head>
<body>
<h1>Registros Salvos</h1>
<ul>
{% for dado in dados %}
<li>{{ dado.nome }}: {{ dado.mensagem }} - <a href="{{ url_for('deletar', id=dado.id) }}">Deletar</a></li>
{% endfor %}
</ul>
<a href="/">Voltar ao Formulário</a>
</body>
</html>
4. Exemplo Completo:
Agora vamos reunir todo o nosso código da parte 1 e 2 deste tutorial, nosso exemplo fica assim:
Esse é o nosso arquivo app.py
# Importa as bibliotecas necessárias
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
# Cria uma instância da aplicação Flask
app = Flask(__name__)
# Configura o SQLAlchemy com o URI do banco de dados SQLite
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///dados.db'
# Cria um objeto SQLAlchemy associado à aplicação Flask
db = SQLAlchemy(app)
# Define o modelo de dados para o formulário
class DadosFormulario(db.Model):
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(80), nullable=False)
mensagem = db.Column(db.String(200), nullable=False)
# Cria as tabelas do banco de dados
with app.app_context():
db.create_all()
# Define a rota da página inicial e a função correspondente
@app.route('/')
def home():
# Renderiza o template do formulário
return render_template('formulario.html')
# Define a rota para enviar dados do formulário
@app.route('/enviar', methods=['POST'])
def enviar():
# Obtém os dados do formulário
nome = request.form['nome']
mensagem = request.form['mensagem']
# Cria um novo registro com os dados recebidos
novo_dado = DadosFormulario(nome=nome, mensagem=mensagem)
# Adiciona e salva o novo registro no banco de dados
db.session.add(novo_dado)
db.session.commit()
# Redireciona para a página de listagem
return redirect(url_for('listar'))
# Define a rota para listar os registros
@app.route('/listar')
def listar():
# Busca todos os registros no banco de dados
dados = DadosFormulario.query.all()
# Renderiza o template de lista, passando os registros
return render_template('lista.html', dados=dados)
# Define a rota para deletar um registro específico
@app.route('/deletar/<int:id>')
def deletar(id):
# Busca o registro pelo ID e, se não encontrar, retorna erro 404
dado_para_deletar = DadosFormulario.query.get_or_404(id)
# Deleta o registro do banco de dados
db.session.delete(dado_para_deletar)
db.session.commit()
# Redireciona para a página de listagem
return redirect(url_for('listar'))
# Verifica se o script é o principal e executa a aplicação
if __name__ == '__main__':
app.run(debug=True)
Assim fica nosso arquivo formulario.html
<!DOCTYPE html>
<html>
<head>
<title>Formulário Flask</title>
</head>
<body>
<h1>Formulário</h1>
<form method="POST" action="/enviar">
<label for="nome">Nome:</label><br>
<input type="text" id="nome" name="nome"><br>
<label for="mensagem">Mensagem:</label><br>
<input type="text" id="mensagem" name="mensagem"><br><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
Assim fica nosso arquivo lista.html
<!DOCTYPE html>
<html>
<head>
<title>Lista de Registros</title>
</head>
<body>
<h1>Registros Salvos</h1>
<ul>
{% for dado in dados %}
<li>{{ dado.nome }}: {{ dado.mensagem }} - <a href="{{ url_for('deletar', id=dado.id) }}">Deletar</a></li>
{% endfor %}
</ul>
<a href="/">Voltar ao Formulário</a>
</body>
</html>
Esta é nossa atual configuração de pastas
E nossa tela inicial deve estar assim:
E a tela de listagem e deleção deve estar assim:
Conclusão das Partes 1 e 2:
Chegamos ao final das partes 1 e 2 do nosso tutorial sobre a criação e gerenciamento de formulários usando Flask e Python. Até agora, exploramos o desenvolvimento de um formulário web básico, a salvaguarda desses dados em um banco de dados SQLite e, mais recentemente, as operações essenciais de listagem e deleção desses registros.
Na Parte 1, focamos na estruturação de um formulário Flask, abordando cada etapa, desde a configuração inicial até o armazenamento de dados inseridos pelo usuário. Esse conhecimento serve como a base para aplicações web interativas e eficientes.
Na Parte 2, avançamos para funcionalidades mais complexas. Aprendemos a listar todos os registros armazenados e implementamos uma funcionalidade crucial: a deleção de registros. Com esses recursos, o nosso aplicativo Flask não apenas coleta, mas também gerencia os dados de forma dinâmica.
Estas duas partes do tutorial oferecem um conhecimento robusto e essencial para quem deseja se aprofundar no desenvolvimento web com Flask. No entanto, nossa jornada ainda não terminou.
Na próxima e última parte deste tutorial, a Parte 3, vamos explorar ainda mais o potencial do Flask, abordando tópicos avançados como a atualização de registros.
Aguardem a Parte 3 para completar sua jornada no desenvolvimento de aplicativos web com Flask e levar suas habilidades para o próximo nível. Até lá, incentivamos você a experimentar o que aprendeu, adaptar e expandir os exemplos fornecidos, e explorar as possibilidades ilimitadas que o Flask oferece.
Obrigado por acompanhar até aqui! Fiquem atentos para a próxima parte, onde continuaremos a aprimorar nossas habilidades em Flask e desenvolvimento web.
Para continuar na parte 3 deste tutotial basta clicar no link abaixo!!
Parte 3 do tutorial de como criar formulários com Python e Flask
Comentarios Recentes