Загрузка изображения в базу данных SQLite
SQLite » Общие вопросы binary image upload python, sqlite python, sqlite upload image, загрузка изображения python
В этой статье, мы собираемся вставить данные изображения в базу данных SQLite. Следует отметить, что некоторые программисты выступают против помещения изображений в базы данных. Здесь мы только покажем, как делать это. Мы не станем останавливаться на технических проблемах того, сохранять ли изображения в базах данных или нет. Это применяется в зависимости от ситуации, когда эффективнее сохранять в базе чем в файлах.
sqlite> CREATE TABLE Images(Id INTEGER PRIMARY KEY, Data BLOB);
Для этого примера, мы создаём новую таблицу, называемую Images. Для изображений мы используем тип данных BLOB, который расшифровывается как Binary Large Objects.
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Подключаем библиотеки
import sqlite3 as lite
import sys
# Функция открытия изображения в бинарном режиме
def readImage(filename):
try:
fin = open(filename, "rb")
img = fin.read()
return img
except IOError, e:
# В случае ошибки, выводим ее текст
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
finally:
if fin:
# Закрываем подключение с файлом
fin.close()
try:
# Открываем базу данных
con = lite.connect('test.db')
cur = con.cursor()
# Получаем бинарные данные нашего файла
data = readImage("woman.jpg")
# Конвертируем данные
binary = lite.Binary(data)
# Готовим запрос в базу
cur.execute("INSERT INTO Images(Data) VALUES (?)", (binary,) )
# Выполняем запрос
con.commit()
# В случаи ошибки выводим ее текст.
except lite.Error, e:
if con:
con.rollback()
print "Error %s:" % e.args[0]
sys.exit(1)
finally:
if con:
# Закрываем подключение с базой данных
con.close()
В этом скрипте, мы читаем изображение из текущей папки в бинарном режиме и записываем его в таблицу Images базы данных SQLite test.db.
try:
fin = open("woman.jpg", "rb")
img = fin.read()
return img
Мы читаем бинарные данные из изображения. Мы имеем JPG-изображение, названное woman.jpg.
binary = lite.Binary(data)
Данные изображения конвертируются в данные объекта SQLite Binary.
cur.execute("INSERT INTO Images(Data) VALUES (?)", (binary,) )
Данный SQL запрос выполняется, чтобы вставлять изображение в базу данных.
Хороший сайт для охотников и любителей огнестрельного оружия в Украине. Выполнения профессионального тюнинга АКМ в Украине http://bullpup.com.ua/catalog/ak_47_akm/ имея весь ассортимент необходимых запчастей. Качество и доступные цены превыше всего.
- Eldorado: как играть в лучшем игровом клубе
- Итерации и циклы в Python
- Игровой автомат Win Wizard - играй и побеждай в казино Вулкан на деньги
- Как необходимо играть в онлайн-казино FreePlay?
- Первые шаги в wxPython [Урок №2]
- Ссылки на изменяемые объекты долго живут
- Игровой автомат Book of Ra Deluxe 6 - на сайте Joycasino казино испытай удачу