python

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:

See the gist on github.

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í:

See the gist on github.

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.

See the gist on github.

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:

See the gist on github.

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í:

See the gist on github.

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:

See the gist on github.

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.

See the gist on github.

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

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:

See the gist on github.

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í:

See the gist on github.

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

8 horas hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

9 horas hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

2 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

1 semana hace

Esta web usa cookies.