Ejemplo completo de Python, Peewee y MySQL MariaDB

Python – Conexión MySQL con Peewee (ORM)

En este post de programación en Python con MySQL/MariaDB te mostraré un ejemplo completo con Peewee.

Peewee es un ORM para Python que sirve para trabajar con bases de datos sin hacer consultas manuales y ayuda a reducir bastante tiempo a través de los modelos. Además, Peewee no solo se puede conectar a MariaDB, también ofrece soporte para otros motores.

A lo largo de este artículo te enseñaré un CRUD (create, read, update y delete) completo de Python con Peewe a través de un ejemplo sencillo que gestionará un diccionario con palabras y significados.

Instalando dependencias

Para instalar el ORM de Python necesitamos contar obviamente con el intérprete de Python y PIP. Para instalarlo, ejecutamos:

pip install peewee

De igual forma vamos a necesitar instalar PyMySQL ya que si bien usaremos el ORM, internamente se usará una conexión nativa:

pip install pymysql

Con eso ya podemos comenzar a trabajar y programar.

Modelo base

Peewee (como todo ORM) trabaja con modelos. Básicamente un modelo representa una tabla en la base de datos, pero específicamente con este ORM necesitamos indicar cuál conexión de base de datos se usará, además de que se debe extender de la clase Model.

Por lo tanto podemos crear una clase que extienda de Model, definir la base de datos que usarán todos los modelos y luego extender los modelos desde nuestro modelo base.

Es muy simple, con el siguiente código declaramos la conexión y nuestro modelo base para trabajar con Peewee en Python:

Ahora podemos crear varios modelos extendiendo del modelo base, y todos van a usar la misma conexión.

Recuerda que debes configurar el usuario, nombre de la base de datos y contraseña para conectar a MySQL.

Modelo y creación de tablas

Como bien dije anteriormente, para este ejemplo vamos a gestionar un diccionario que tendrá una palabra y su significado. Entonces el modelo queda así:

Como puedes ver tenemos dos campos, la palabra y el significado. Ambos son tipos de datos de texto así que ambos son TextField.

Para crear las tablas invocamos a create_tables de la conexión obtenida ya a través de Peewee. En este caso envío solo la clase de un modelo dentro de la lista, pero si hubiera más, se agregarían todas.

Operaciones en la base de datos

Es momento de ver las operaciones para insertar, eliminar, actualizar y obtener. Hay varias formas de hacerlo, yo prefiero la que te enseñaré a continuación:

Para crear un nuevo dato invocamos al método create del modelo, indicando el nombre del valor y el valor en sí. En cambio un update se ve así:

Cuando invocamos a update indicamos los campos que se cambian. Como solo cambiamos el significado (que ahora será lo que tenga nuevo_significado) indicamos únicamente un campo.

Más tarde limitamos el update con where para que solo se actualice donde la palabra sea igual a la indicada. Finalmente invocamos a execute para ejecutar la actualización.

En el caso de eliminar hacemos lo siguiente:

Invocamos al método delete e igualmente limitamos con where. Si queremos obtener uno o varios datos (lo que vendría a ser el SELECT) invocamos a select o a get.

Es decir, para seleccionar todos los registros invocamos a select. Y para limitar la búsqueda invocamos a where para más tarde invocar a get (mismo que devolverá solo una fila).

Como dicen los comentarios, si no se encuentra esa fila, Peewee lanzará una excepción. Tú puedes manejarla de la manera que prefieras.

Poniendo todo junto

Ejemplo completo de Python, Peewee y MySQL MariaDB
Ejemplo completo de Python, Peewee y MySQL MariaDB

En la imagen puedes ver el código, la ejecución del programa y la tabla de la base de datos con los datos que igualmente estamos mostrando en el software creado por Python.

Ahora solo resta invocar esos métodos desde un menú que bien puede ser el siguiente:

Lo que se está haciendo es mostrar un menú, leer la acción del usuario y actuar dependiendo de la misma. De este modo el usuario puede manejar el diccionario de este ejemplo con Python y el ORM de Python.

El código completo queda así:

Basta con ejecutar el script y usar el menú. Así es como podemos hacer una aplicación conectando Python con MySQL sin escribir consultas manualmente, pues todo se hace a través del ORM Peewee.

Recuerda que este código es gratuito y open source así que puedes usarlo como tú prefieras; modificarlo, mejorarlo, etcétera.

Para terminar el post te dejo con más tutoriales de Python y MariaDB.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario