No último post, aprendemos a criar um aplicativo complementar usando Flask e Bootstrap 5. Neste post, vamos dar um passo adiante e aprender a criar um aplicativo web Flask com Banco de Dados, que permite ao usuário enviar dados para um banco de dados a partir de um formulário HTML5 e exibir esses dados na tela.
Configurando o Banco de Dados
Vamos usar o SQLite, que é um banco de dados leve e fácil de usar que é perfeito para projetos pequenos e médios. Primeiro, precisamos instalar a extensão Flask-SQLAlchemy, que nos permite trabalhar com o SQLAlchemy (um ORM popular para Python) no Flask. Ative seu ambiente virtual e instale a extensão com o seguinte comando:
pip install flask_sqlalchemy
Em seguida, vamos configurar o banco de dados em nosso aplicativo Flask. Adicione o seguinte código ao arquivo blog.py
:
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite:///site.db’
db = SQLAlchemy(app)
Criando um Modelo
Um modelo é uma representação de uma tabela de banco de dados em código. Vamos criar um modelo Post
para representar nossos posts de blog. Adicione o seguinte código ao arquivo blog.py
:
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
content = db.Column(db.Text, nullable=False)
def __repr__(self):
return f”Post(‘{self.title}’)”
Em seguida, vamos criar nosso banco de dados e tabelas com o seguinte comando:
Criando e Exibindo Posts
Agora que temos nosso banco de dados e modelo configurados, podemos criar e exibir posts. Vamos modificar nosso aplicativo Flask para permitir ao usuário enviar dados para o banco de dados. Adicione o seguinte código ao arquivo blog.py
:
@app.route(‘/post/new’, methods=[‘GET’, ‘POST’])
def new_post():
if request.method == ‘POST’:
title = request.form[‘title’]
content = request.form[‘content’]
post = Post(title=title, content=content)
db.session.add(post)
db.session.commit()
return redirect(url_for(‘home’))
return render_template(‘create_post.html’)
Em seguida, vamos modificar nosso template home.html
para exibir os posts do banco de dados:
{% extends "base.html" %}
{% block content %}
{% for post in posts %}
<h1 class="mt-5">{{ post.title }}</h1>
<p>{{ post.content }}</p>
{% endfor %}
{% endblock %}
Agora, quando você visitar http://localhost:5000
, poderá criar um novo post e ver todos os posts exibidos na página inicial!
Conclusão
Neste post, aprendemos a criar um aplicativo Flask que permite ao usuário enviar dados para um banco de dados e exibir esses dados na tela. No próximo post, vamos explorar mais recursos do Flask. Fique ligado!