pysqlite - 如何保存图像

时间:2010-07-22 14:29:51

标签: python image sqlite blob pysqlite

我需要在python中将图像文件保存到sqlite数据库中。我找不到解决方案。我该怎么办?

提前致谢。

4 个答案:

答案 0 :(得分:8)

撰写 - 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'])

答案 1 :(得分:3)

将图像存储在数据库中吗?我会将图像写入文件系统并将其路径存储在数据库中。 (您可能无法执行此操作,具体取决于您的具体情况。)

如果绝对必须,请查看here

答案 2 :(得分:2)

我不确定pysqlite是否与sqlite3相同,sqlite3目前是标准python库中的默认值。但是如果您使用sqlite3,则可以将图像存储在buffer object中,并将其存储在sqlite的blob字段中。 但请注意以下事项:

  • 将图像存储在数据库中是不赞成的,存储文件和数据库中的路径是另一种可能性。
  • 确保返回正确的mime类型

答案 3 :(得分:0)

在数据库中记录原始类型绝不是一个好主意。你难道不能将文件保存在文件系统上,并在数据库中记录它的路径吗?