pysqlite - как сохранить изображения

Мне нужно сохранить файл изображения в базу данных sqlite в python. Я не мог найти решение. Как я могу это сделать?

спасибо заранее.

4 ответов


написать - cursor.execute('insert into File (id, name, bin) values (?,?,?)', (id, name, sqlite3.Binary(file.read())))

читать - file = cursor.execute('select bin from File where id=?', (id,)).fetchone()

Если вам нужно вернуть данные bin в веб-приложении - return cStringIO.StringIO(file['bin'])


вы есть хранить изображения в базе данных? Я бы записал изображение в файловую систему и сохранил его путь в БД. (Возможно, вы не сможете этого сделать, в зависимости от вашего конкретного случая.)

Если вы абсолютно должны, посмотри здесь.


Я не уверен, что pysqlite совпадает с sqlite3, который в настоящее время по умолчанию используется в стандартной библиотеке python. Но если вы используете sqlite3, вы можете сохранить изображение в buffer объект и хранить это в blob поле в sqlite. Однако имейте в виду следующее:

  • хранение изображений в базе данных-это не одобряется некоторыми, хранение файлов и пути в базе данных другие возможности.
  • убедитесь, что вы возвращаете правильный мим тип

никогда не рекомендуется записывать необработанные типы в базы данных. Не могли бы вы сохранить файл в файловой системе, и записать путь к ней в БД?