Bei der Python-Programmierung können wir mithilfe der integrierten Unterstützung eine Verbindung zu mehreren Datenbanken wie MySQL, Oracle, SQLite usw. herstellen. Wir haben separate Module für jede Datenbank. Wir können die SQL-Sprache als Vermittler zwischen dem Python-Programm und der Datenbank verwenden. Wir schreiben alle Abfragen in unser Python-Programm und senden diese Befehle an die Datenbank. Mit diesen Programmen können wir also verschiedene Operationen wie Einfügen, Löschen, Aktualisieren und Abrufen ausführen.

Hier, in diesem Artikel, werden wir die Arbeit mit MySQL BLOB in Python besprechen. Mit Hilfe des Datentyps BLOB (Large Binary Object) in MySQL können wir Dateien oder Bilder in unserer Datenbank im Binärformat speichern.

Installation des MySQL-Connectors:

Dieser Connector verbindet unser Python-Programm mit der Datenbank. Führen Sie einfach diesen Befehl aus,

Befehl:

pip install mysql-connector-python

Wichtige Schritte für die Python-Datenbankprogrammierung:

  • Importieren Sie das MySQL-Datenbankmodul
import mysql.connector
  • Zum Herstellen einer Verbindung zwischen Python-Programm und Datenbank. Mit der Methode connect() verbinden wir das Python-Programm mit unserer Datenbank.

connection = mysql.connector.connect(host='localhost', database='<database_name>', user='<User_name>', password='<password>')

  • Erstellen Sie nun ein Cursorobjekt, indem Sie die Cursor()-Methode zum Ausführen der SQL-Abfragen verwenden und das Ergebnis in einem Objekt speichern.
cursor = connection.cursor()
  • Zum Ausführen von SQL-Abfragen verwenden wir ein Cursor-Objekt. Beispielsweise,
cursor.execute("select * from table_name")
  • Schließlich, sobald wir mit unseren Operationen fertig sind, müssen wir die Ressourcen schließen.
cursor.close()
con.close()

Wir sind mit den grundlegenden Schritten der Verbindung fertig. Lassen Sie uns nun die Hauptagenda dieses Artikels besprechen, nämlich die praktische Implementierung des BLOB-Datentyps in MySQL Python. 

  • Zuerst müssen wir mit dem folgenden Befehl eine Datenbank in MySQL erstellen.
create database geeksforgeeks;

Zum Beispiel: 

  • Erstellen einer Funktion, mit der wir Bilder oder Dateien in das Binärformat konvertieren können.

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
  • Überprüfen Sie, ob die Datenbankverbindung mit dem Python-Programm erstellt wurde oder nicht. Schauen wir uns den folgenden Code an:

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')

Wir sind mit allen grundlegenden Dingen fertig, die erforderlich sind. Sehen wir uns den vollständigen Code zum Einfügen der Bilder oder Dateien in die MySQL-Datenbank mit Python-Programmen an:

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))
    # Commiting the data
    connection.commit()
    print("Successfully Inserted Values")
 
# Print error if occured
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")

Ausgabe:

Die in MySQL gebildete Tabelle:

Erläuterung:

  • Herstellen der Verbindung mit MySQL-Datenbank.
  • Schreiben Sie die Abfrage zum Erstellen einer Tabelle und verwenden Sie das Cursorobjekt, und führen Sie es aus.
  • Fügen Sie nun Daten mithilfe einer SQL-Abfrage in eine Tabelle ein und speichern Sie sie in einer Abfragevariablen .
  • Speichern der Daten in Variablen wie student_id = „1“, Student_name = „Shubham“ und für Bilder oder Dateien konvertieren wir diese Dateien zuerst in Binärdaten und speichern sie dann in Variablen.
  • Verwenden des Cursorobjekts, Ausführen der Abfrage. Einfügen der Daten in die Datenbank im Tupelformat.
  • Mit der Methode commit() speichern wir die Daten.
  • Nach Abschluss aller Operationen müssen wir alle Ressourcen wie die Verbindung und das Cursorobjekt schließen.

Klicken Sie hier, um die PNG-Datei und die TXT-Datei herunterzuladen . 

Videodemonstration: