Python Flask – Uso de SQLAlchemy para interactuar con la base de datos

SQLAlchemy es una biblioteca de mapeo objeto-relacional (ORM) en Python que proporciona una forma más sencilla y orientada a objetos de interactuar con bases de datos relacionales. En Flask, puedes usar SQLAlchemy para interactuar con la base de datos de manera eficiente. Aquí tienes un ejemplo de cómo usar SQLAlchemy en una aplicación Flask:

Paso 1: Instalar SQLAlchemy

Primero, debes asegurarte de que SQLAlchemy esté instalado en tu entorno virtual:

pip install Flask-SQLAlchemy

Paso 2: Configurar SQLAlchemy en tu Aplicación

En tu archivo principal de Flask (por ejemplo, app.py), configura SQLAlchemy para que funcione con tu aplicación:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# Configura la URI de la base de datos (en este ejemplo, SQLite)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mi_basededatos.db'

db = SQLAlchemy(app)

# Define el modelo de datos Usuario
class Usuario(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    nombre = db.Column(db.String(80), nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

@app.route('/')
def index():
    # Crear una nueva entrada en la base de datos (ejemplo)
    nuevo_usuario = Usuario(nombre='Beastieux', email='info@beastieux.com')
    db.session.add(nuevo_usuario)
    db.session.commit()

    # Consultar datos de la base de datos (ejemplo)
    usuarios = Usuario.query.all()  # Obtener todos los usuarios

    # Mostrar los nombres de los usuarios
    nombres_usuarios = [usuario.nombre for usuario in usuarios]

    return 'Nombres de usuarios: ' + ', '.join(nombres_usuarios)

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

Una vez que hayas definido tus modelos de datos, puedes crear y actualizar la base de datos usando las migraciones de SQLAlchemy. Ejecuta estos comandos en tu terminal:

flask db init    # Inicializar migraciones (solo una vez)
flask db migrate # Generar una migración inicial
flask db upgrade # Aplicar la migración a la base de datos

Para consulta usuarios:

usuarios = Usuario.query.all() # Obtener todos los usuarios
usuario = Usuario.query.filter_by(nombre='John Doe').first() # Obtener un usuario por nombre

Deja un comentario