Exemplo básico de CRUD com MYSQL e linguagem Python

Neste tutorial, você verá:
✔️ Criar uma api do zero usando o python com MySQL;
✔️ Testar o CRUD usando o Postman
📌 Simplifique seu processo de deploy com o nosso painel ICP!
Nesse tutorial vamos aprenda a desenvolver, configurar sua API em Python usando o banco de dados MySQL. Tudo explicado de forma simples e prática!
📌 Passo 1: Crie um arquivo requirements.txt na raiz do seu projeto com o seguinte conteúdo
Flask==2.1.3
Flask-SQLAlchemy==2.5.1
Flask-RESTful==0.3.9
python-dotenv==1.0.0
PyMySQL==1.0.2
Werkzeug==2.1.2
SQLAlchemy==1.4.46
📌 Passo 2: Crie um arquivo index.py na raiz do seu projeto com o seguinte conteúdo:
import os
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_restful import Api, Resource
from dotenv import load_dotenv
# Carregar variáveis de ambiente do arquivo .env
load_dotenv()
app = Flask(__name__)
# Configurar a URI de conexão usando variáveis de ambiente
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{os.getenv('DB_USER')}:{os.getenv('DB_PASSWORD')}@{os.getenv('DB_HOST')}:{os.getenv('DB_PORT')}/{os.getenv('DB_NAME')}"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
api = Api(app)
# Definir o modelo de dados
class Usuario(db.Model):
__tablename__ = 'usuarios'
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(255), nullable=False)
email = db.Column(db.String(255), nullable=False)
def to_dict(self):
return {'id': self.id, 'nome': self.nome, 'email': self.email}
# Endpoint para listar todos os usuários
class UsuarioList(Resource):
def get(self):
usuarios = Usuario.query.all()
return [usuario.to_dict() for usuario in usuarios], 200
def post(self):
data = request.get_json()
novo_usuario = Usuario(nome=data['nome'], email=data['email'])
db.session.add(novo_usuario)
db.session.commit()
return {'message': 'Usuário adicionado com sucesso'}, 201
# Endpoint para manipular um usuário específico
class UsuarioDetail(Resource):
def get(self, id):
usuario = Usuario.query.get_or_404(id)
return usuario.to_dict(), 200
def put(self, id):
data = request.get_json()
usuario = Usuario.query.get_or_404(id)
usuario.nome = data['nome']
usuario.email = data['email']
db.session.commit()
return usuario.to_dict(), 200
def delete(self, id):
usuario = Usuario.query.get_or_404(id)
db.session.delete(usuario)
db.session.commit()
return {'message': 'Usuário deletado com sucesso'}, 200
# Adicionar as rotas aos recursos
api.add_resource(UsuarioList, '/usuarios')
api.add_resource(UsuarioDetail, '/usuarios/<int:id>')
if __name__ == '__main__':
db.create_all()
app.run(debug=True, host="0.0.0.0", port=3140)
📌 Passo 3: Crie uma tabela usuários em seu banco de dados:
CREATE TABLE usuarios (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
);
📌 Passo 4: Iniciando o seu projeto Python
python index.py
📌 Passo 5: Testando o CRUD com Postman
Com o aplicativo registrado e iniciado corretamente com sucesso, temos o acesso testado e 100% funcional, no qual demonstramos em imagens abaixo:
Adicionando um usuário:

Visualizar um usuário:

Excluir um usuário:

Até a próxima pessoal! =)