8

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

提前致谢。

4

4 回答 4

11

——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()

如果您需要在 Web 应用程序中返回 bin 数据 -return cStringIO.StringIO(file['bin'])

于 2010-07-22T16:19:36.877 回答
3

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

如果您绝对必须,请看这里

于 2010-07-22T14:40:56.300 回答
2

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

  • 有些人不赞成将图像存储在数据库中,将文件和路径存储在数据库中是另一种可能性。
  • 确保返回正确的 mime 类型
于 2010-07-22T14:38:56.677 回答
0

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

于 2010-07-22T14:39:06.727 回答