Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Vamos a retomar el proyecto del CRUD a la base de datos de productos con categorias
creada en Flask, donde inicialmente la base de datos cuenta con dos tablas, y donde ya
se realizó todo el procreso del CRUD creando la conexión y las consultas mediante código
sql directamente, ahora se explica el uso de un ORM como Flask-SqlAlchemy.
¿Qué es un ORM?
Un ORM (Object-Relational Mapper) es un toolkit que nos ayuda a trabajar con las tablas
de la base de datos como si fueran objetos, de manera que cada tabla se mapea con una
clase y cada columna con un campo de dicha clase. Además, también nos permite mapear
las relaciones entre tablas como relaciones entre objetos.
Una de las características que más atractivo hacen a los ORMs es que se puede cambiar
la base de datos sin apenas modificar código. De manera que puede programar la
aplicación con un ORM sin pensar que la base de datos es, por ejemplo, Mysql o
PostgreSQL.
Flask-SqlAkchemy
El siguiente paso es en el archivo donde se crea la aplicación de tipo Flask, se debe integrar
con Flask-SqlAlchemy. Por lo anterior debemos importar a flask-SqlAlkchemy
GFPI-F-135 V01
Configurar a la aplicación la cadena de conexión cumpliendo con la siguiente estructura:
(Tomada de: https://flask-sqlalchemy.palletsprojects.com/en/2.x/config/#configuration-keys)
Después crear el objeto que nos representa la base de datos, asociado a la aplicación
flask creada.
La clase base para todos sus modelos se llama db.Model. Se almacena en la instancia
de SQLAlchemy que debe crear.
Partiendo de la base de datos que contiene dos tablas, se procede a crear los Modelos.
GFPI-F-135 V01
Pasos:
GFPI-F-135 V01
b) Crear el archivo producto.py en la carpeta modelo
En el modelo anterior podemos ver en la línea 10 como se crea un atributo que representa
el campo de la llave foránea en la base de datos. Adicionalmente cuando tenemos este
tipo de relación podemos crear un atributo que se convierte en un objeto de acuerdo al
elemento relacionado. En este modelo se crea el atributo categoría que representa al objeto
categoría relacionado con la clase Categoria.
GFPI-F-135 V01
Creación de los Controladores
Los controladores en el Modelo Vista Controlador son los encargados de recibir las
peticiones de la vista y comunicarse con el modelo para atender dichas solicitudes. Por lo
anterior en los controladores vamos a crear las rutas que atiendes dichas solicitudes.
GFPI-F-135 V01
b) Creación del controlador productoController
Ahora vamos a integrar en el archivo app.py el llamado a los controladores para el buen
funcionamiento de la aplicación.
GFPI-F-135 V01
GFPI-F-135 V01
Bibliografía
Hasta aquí el material de apoyo. Se recomienda continuar con el ejercicio que permita
realizar el crud completo utilizando flask-sqlachemy.
GFPI-F-135 V01