pysqlite - как сохранить изображения - PullRequest
7 голосов
/ 22 июля 2010

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

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

Ответы [ 4 ]

9 голосов
/ 22 июля 2010

запись - 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()

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

3 голосов
/ 22 июля 2010

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

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

2 голосов
/ 22 июля 2010

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

  • хранение изображений в базе данных осуждается некоторыми, хранение файлов и пути в базе данных является другой возможностью.
  • убедитесь, что вы вернули правильный тип пантомимы
0 голосов
/ 22 июля 2010

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

...