Open In App

How to Insert Image in SQLite using Python?

Last Updated : 16 May, 2021
Comments
Improve
Suggest changes
Like Article
Like
Report

In this article, we will discuss how to insert images in SQLite using sqlite3 module in Python.

Implementation:

1. Set the connection to the SQLite database using Python code.

sqliteConnection = sqlite3.connect('SQLite_Retrieving_data.db')
cursor = sqliteConnection.cursor()

2. We need to define an INSERT query for inserting the BLOB data into the table.  

sqlite_insert_blob_query = """ INSERT INTO Student
                                 (name, img) VALUES (?, ?)"""

3. Converting human-readable file into binary data by calling this convertToBinaryData() function, and storing it empPhoto variable,

empPhoto = convertToBinaryData(photo)

4. Once the file converted into binary format, now let's convert data into tuple format,

data_tuple = (name, empPhoto)

5. Use cursor.execute() to execute a SELECT query in Python.  

cursor = sqliteConnection.cursor()
cursor.execute(sqlite_insert_blob_query, data_tuple)

6. Use sqliteConnection.commit() for saving the changes we made.  

sqliteConnection.commit()

7. Create a function that converts Human Readable data into the binary format for storing it into database.  

def convertToBinaryData(filename):

  # Convert binary format to images or files data
  with open(filename, 'rb') as file:
      blobData = file.read()
  return blobData

8. Close the cursor connection and MySQL database.

if sqliteConnection:
    sqliteConnection.close()
    print("the sqlite connection is closed")

Below is the implementation.

Python3
import sqlite3


# Function for Convert Binary Data 
# to Human Readable Format
def convertToBinaryData(filename):
    
    # Convert binary format to images 
    # or files data
    with open(filename, 'rb') as file:
        blobData = file.read()
    return blobData


def insertBLOB(name, photo):
    try:
        
        # Using connect method for establishing
        # a connection
        sqliteConnection = sqlite3.connect('SQLite_Retrieving_data.db')
        cursor = sqliteConnection.cursor()
        print("Connected to SQLite")
        
        # insert query
        sqlite_insert_blob_query = """ INSERT INTO Student
                                  (name, img) VALUES (?, ?)"""
        
        # Converting human readable file into 
        # binary data
        empPhoto = convertToBinaryData(photo)
        
        # Convert data into tuple format
        data_tuple = (name, empPhoto)
        
        # using cursor object executing our query
        cursor.execute(sqlite_insert_blob_query, data_tuple)
        sqliteConnection.commit()
        print("Image and file inserted successfully as a BLOB into a table")
        cursor.close()

    except sqlite3.Error as error:
        print("Failed to insert blob data into sqlite table", error)
    
    finally:
        if sqliteConnection:
            sqliteConnection.close()
            print("the sqlite connection is closed")

insertBLOB("Smith", "D:\Internship Tasks\GFG\images\One.png")
insertBLOB("David", "D:\Internship Tasks\GFG\images\person.png")

Output:

Output for above Python Program

Let's check output in the database using SELECT query with proper format commands,

Output inside database

Next Article
Article Tags :
Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy