Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Чтение изображения из SQLite

В этой статье, мы собираемся выполнять обратную операцию. Мы будем читать изображение из таблицы базы данных. В прошлой статье мы записали данные изображения в таблицу, теперь мы превратим эти данные обратно в изображение.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
def writeImage(data):
    try:
        fout = open('woman2.jpg','wb')
        fout.write(data)
    
    except IOError, e:    
        print "Error %d: %s" % (e.args[0], e.args[1])
        sys.exit(1)
        
    finally:
        if fout:
            fout.close()       
    
try:
    con = lite.connect('test.db')
    cur = con.cursor()    
    cur.execute("SELECT Data FROM Images LIMIT 1")
    data = cur.fetchone()[0]
    writeImage(data)
    
except lite.Error, e:
    print "Error %s:" % e.args[0]
    sys.exit(1)
    
finally:
    if con:
        con.close()

Мы читаем данные изображения из таблицы Images и пишем их в другой файл, который мы называем woman2.jpg. В базу данных можно сохранять изображения для капч, используя небольшой список русских слов (как это делает Яндекс) и выводить их для пользователя. Можно скрипт капчи скачать и использовать уже готовый для своих проектах.

try:
    fout = open('woman2.jpg','wb')
    fout.write(data)

Мы открываем двоичный файл в режиме записи. Данные из базы данных записываются в файл.

cur.execute("SELECT Data FROM Images LIMIT 1")
data = cur.fetchone()[0]

Эти две строки выбирают и получают данные из таблицы Images. Мы достаём двоичные данные из первой строки.