Cómo conectar Python con MySQL - Salón de Clases

Cómo conectar Python con MySQL

Para conectar nuestras aplicaciones hechas en lenguaje Python con el gestor de base de datos MySQL o su equivalente MariaDB, solo necesitamos un conector que se puede instalar de manera simple y sencilla utilizando el gestor de paquetes estándar pip (pip installs packages) desde una ventana de consola o terminal.

Instalar conector de MySQL desde la terminal

En una ventana de terminal, consola o símbolo del sistema, escribe la siguiente instrucción:

pip install mysql-connector-python

En algunas distribuciones Linux, es posible que necesites permisos para ejecutar ese comando:

sudo pip install mysql-connector-python

Una vez termine la instalación, debemos obtener un output similar a este:

Cómo conectar Python con MySQL - Salón de Clases

Si estás usando Visual Studio Code o algún editor similar, ve al menú Terminal y selecciona New Terminal.

Cómo conectar Python con MySQL - Salón de Clases

Y ejecutas ahí el comando.

Cómo conectar Python con MySQL - Salón de Clases

Creación de la base de datos para Python

En tus gestor de base de datos, crea la base de datos que necesitas.

Cómo conectar Python con MySQL - Salón de Clases

Por motivos demostrativos, no es necesario por ahora que tenga tablas.

Cómo conectar Python con MySQL - Salón de Clases

Creando la conexión a MySQL

En un archivo Python separado, comenzamos a trabajar. Lo primero será realizar la llamada al connector de la siguiente manera.

import mysql.connector

Inmediatamente, creamos un método para invocarlo en nuestras aplicaciones.

def abrir():

Proporcionamos los datos de acceso a nuestra base de datos. Necesitamos 4 valores: El usuario (recuerda no usar root en un proyecto de producción), su clave, el nombre de nuestra base de datos y el nombre o dirección IP del servidor.

usuario = "root"
clave = "root"
base = "ejemplopython"
servidor = "localhost"

Iniciamos un bloque try – except.

try:

Generamos una conexión usando los datos de acceso.

bd = mysql.connector.connect(
  host = servidor,
  user = usuario,
  password = clave,
  database = base
)

Con el método is_connected para corroborar, regresamos la conexión realizada si es que tuvo éxito.

if bd.is_connected(): return bd

En caso contrario, regresamos False.

else: return False

Capturamos cualquier posible excepción o error de acceso.

except mysql.connector.Error as error:

Mostramos los errores y problemas en el output para depurar. Los errores se manejan como un tipo de datos set, pero si queremos tratar cada error por separado, podemos hacerlo como lo sugiere la documentación de MySQL.

print(f"Error: {error}")

Por último regresamos False ya que tampoco se pudo conectar.

return False

El resultado queda como sigue:

Cómo conectar Python con MySQL - Salón de Clases

Probando la conexión a MySQL

En un archivo nuevo comenzamos importando el archivo que hicimos con la conexión.

import conectar

Usando el método abrir, creamos una conexión a la base de datos.

mysql = conectar.abrir()

Si la conexión regresa False, entonces no se pudo conectar.

if(mysql==False):
    print("No se pudo conectar")

Pero si regresa un objeto de tipo connector, entonces se logró la conexión.

else:
    print("Conexión exitosa")

Queda como sigue:

Cómo conectar Python con MySQL - Salón de Clases

Al ejecutar nuestra prueba, podemos ver que hemos podido lograr la conexión.

Cómo conectar Python con MySQL - Salón de Clases

Si no se puede conectar por alguna razón, podemos ver en el output la razón para investigar y corregir. En este ejemplo he quitado la contraseña del usuario y eso se ve reflejado en su salida.

Cómo conectar Python con MySQL - Salón de Clases

Comentarios, dudas y preguntas

¡Y eso es todo! No olvides dejar tus comentarios, dudas y / o preguntas. Con gusto las respondemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *