Soy nuevo en matraz. Estoy desarrollando una aplicación web usando matraz y postgres. Ya he diseñado la base de datos. Sé que sqlalchemy es orm. ¿Todavía necesito usar sqlalchemy en el matraz si mi base de datos ya fue diseñada sin sqlalchemy? Tengo que usar esa base de datos para obtener y actualizar valores. Si voy más allá, ¿me será útil sqlalchemy? ¿O puedo simplemente usar el conector db y continuar?
Flask es un marco web y no requiere SQLAlchemy. Si elige usar Flask y SQLAlchemy, existe la extensión Flask-SQLAlchemy para que funcionen mejor juntos.
¿Necesita usar SQLAlchemy, o cualquier ORM, para trabajar con una base de datos? No. ¿Deberías? Sí. Los ORM brindan ciertas características y comodidades que SQL sin procesar no proporciona. Y siempre puedes escribir SQL sin formato.
Aquí hay algunos beneficios importantes de SQLAlchemy.
Si bien existe un estándar SQL, todas las bases de datos SQL son diferentes. Un ORM suaviza muchas de estas diferencias para que su código SQLAlchemy sea más fácil de migrar a diferentes bases de datos.
Su esquema está escrito, pero ¿qué sucede si necesita cambiarlo? Ahí es donde entran las migraciones de bases de datos. Le permiten cambiar su esquema (agregar y eliminar columnas, cambiar tipos, agregar tablas) de una manera reproducible y reversible. Esto hace que sea más fácil y seguro cambiar su base de datos y los datos que contiene, junto con su código. Así como para revertir cambios que resultaron ser malas ideas.
ORM significa "Mapeador relacional de objetos". Le permite tratar una base de datos como un grupo de objetos en lugar de solo algunos datos. Python es un lenguaje orientado a objetos, y será mucho más fácil trabajar con sus datos como objetos con métodos. Cada tabla es una clase, cada fila es un objeto.
La parte de "asignación" no solo se aplica a las filas, también se aplica a los tipos de datos SQL. Por ejemplo, las columnas de marca de tiempo se cargarán como Python como objetos de fecha y hora. Esto hace que sea más conveniente trabajar con los datos en Python.
SQLAlchemy le permite validar sus datos antes de insertarlos en la base de datos, asegurando que todos sus datos sean como espera. Saber que todo en la base de datos es válido hace que el sistema sea más robusto y reduce el manejo de errores.
En lugar de tener que escribir todo su SQL a mano, SQLAlchemy tiene un generador de consultas. Puede crear y modificar consultas como objetos. Esto simplifica la escritura de consultas. Y te permite construirlos en pedazos. Por ejemplo, puede comenzar con una consulta.
all_users = select([ users.c.name, users.c.email ])Y luego agregue una cláusula where.
a_users = all_users.where(users.c.name.ilike("a%"))Y luego una cláusula límite.
some_a_users = a_users.limit(10)El uso de sqlalchemy lo ayudará a obtener/insertar datos muy fácilmente, sin importar si diseñó su base de datos manualmente, solo necesita definir su diseño y luego, en lugar de escribir varias líneas, escribe una línea y todo listo. También lo ayuda a manejar errores y mucho más. Le sugiero encarecidamente que lo use.