Trabajando con MySQL BLOB en Python

En la programación de Python, podemos conectarnos con varias bases de datos como MySQL, Oracle, SQLite, etc., utilizando el soporte incorporado. Tenemos módulos separados para cada base de datos. Podemos usar SQL Language como mediador entre el programa Python y la base de datos. Escribiremos todas las consultas en nuestro programa python y enviaremos esos comandos a la base de datos. Entonces, con estos programas, podemos realizar varias operaciones, como Inserción, Eliminación, Actualización y Recuperación.

Aquí, en este artículo, discutiremos cómo trabajar con MySQL BLOB en python. Con la ayuda del tipo de datos BLOB (Large Binary Object) en MySQL, podemos almacenar archivos o imágenes en nuestra base de datos en formato binario.

Instalación del Conector MySQL:

Este conector conectará nuestro programa python a la base de datos. Solo ejecuta este comando,

Dominio:

pip install mysql-connector-python

Pasos importantes para la programación de la base de datos de Python:

  • Importar módulo de base de datos MySQL
import mysql.connector
  • Para crear una conexión entre el programa Python y la base de datos. Usando el método connect(), conectaremos el programa python con nuestra base de datos.

conexión = mysql.connector.connect(host=’localhost’, base de datos='<nombre_base_datos>’, usuario='<nombre_usuario>’, contraseña='<contraseña>’)

  • Ahora, cree un objeto de cursor utilizando el método cursor() para ejecutar las consultas SQL y mantener el resultado en un objeto.
cursor = connection.cursor()
  • Para ejecutar consultas SQL, utilizaremos un objeto de cursor. Por ejemplo,
cursor.execute("select * from table_name")
  • Finalmente, una vez que hayamos terminado con nuestras operaciones, tenemos que cerrar los recursos.
cursor.close()
con.close()

Hemos terminado con los pasos básicos de conexión. Ahora, analicemos la agenda principal de este artículo, que es la implementación práctica del tipo de datos BLOB en MySQL Python, 

  • Primero, necesitamos crear una base de datos en MySQL usando el siguiente comando.
create database geeksforgeeks;

Por ejemplo: 

  • Creando una función a través de la cual podemos convertir imágenes o archivos en formato binario.

Python3

def convertData(filename):
   
    # Convert images or files data to binary format
    with open(filename, 'rb') as file:
        binary_data = file.read()
     
    return binary_data
  • Compruebe si la conexión de la base de datos se crea o no utilizando el programa Python. Echemos un vistazo en el siguiente código:

Python3

import mysql.connector
 
 
connection = mysql.connector.connect(
    host='localhost', database='geeksforgeeks',
    user='root', password='shubhanshu')
 
cursor = connection.cursor()
 
if connection is not None:
    print('Connected Successfully')
else:
    print('Connection Failed')

Hemos terminado con todo lo básico que se requiere. Veamos el código completo para insertar las imágenes o archivos en la base de datos MySQL usando Programas Python:

Python3

import mysql.connector
 
 
# Convert images or files data to binary format
def convert_data(file_name):
    with open(file_name, 'rb') as file:
        binary_data = file.read()
    return binary_data
 
 
try:
    connection = mysql.connector.connect(host='localhost',
                                         database='geeksforgeeks',
                                         user='root',
                                         password='shubhanshu')
    cursor = connection.cursor()
    # create table query
    create_table = """CREATE TABLE demo(id INT PRIMARY KEY,\
    name VARCHAR (255) NOT NULL, profile_pic BLOB NOT NULL, \
    imp_files BLOB NOT NULL) """
 
    # Execute the create_table query first
    cursor.execute(create_table)
    # printing successful message
    print("Table created Successfully")
 
    query = """ INSERT INTO demo(id, name, profile_pic, imp_files)\
    VALUES (%s,%s,%s,%s)"""
 
    # First Data Insertion
    student_id = "1"
    student_name = "Shubham"
    first_profile_picture = convert_data("D:\GFG\images\shubham.png")
    first_text_file = convert_data('D:\GFG\details1.txt')
 
    # Inserting the data in database in tuple format
    result = cursor.execute(
        query, (student_id, student_name, first_profile_picture, first_text_file))
    # Committing the data
    connection.commit()
    print("Successfully Inserted Values")
 
# Print error if occurred
except mysql.connector.Error as error:
    print(format(error))
 
finally:
   
    # Closing all resources
    if connection.is_connected():
       
        cursor.close()
        connection.close()
        print("MySQL connection is closed")

Producción:

La tabla formada en MySQL:

Explicación:

  • Establecimiento de la conexión con la base de datos MySQL.
  • Escriba la consulta de creación de tabla y use el objeto de cursor, ejecutándolo.
  • Ahora, inserte datos en una tabla usando una consulta SQL y almacene en la variable de consulta .
  • Almacenando los datos en variables como student_id = «1», Student_name = «Shubham» y para imágenes o archivos, primero estamos convirtiendo esos archivos en datos binarios y luego los almacenamos en variables.
  • Usando el objeto del cursor, Ejecutando la consulta. Inserción de los datos en la base de datos en formato de tupla.
  • Usando el método commit(), estamos guardando los datos.
  • Después de completar todas las operaciones, debemos cerrar todos los recursos, como la conexión y el objeto del cursor.

Haga clic aquí para descargar el archivo PNG y el archivo TXT

Vídeo de demostración:

Publicación traducida automáticamente

Artículo escrito por shubhanshuarya007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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