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.
Однако имейте в виду следующее:
- хранение изображений в базе данных-это не одобряется некоторыми, хранение файлов и пути в базе данных другие возможности.
- убедитесь, что вы возвращаете правильный мим тип
никогда не рекомендуется записывать необработанные типы в базы данных. Не могли бы вы сохранить файл в файловой системе, и записать путь к ней в БД?