pysqlite - 如何保存图片

8 投票
4 回答
15513 浏览
提问于 2025-04-16 01:41

我想把一张图片文件存到Python的sqlite数据库里,但找不到办法。请问我该怎么做呢?

提前谢谢你们!

4 个回答

2

我不太确定pysqlite和sqlite3是不是一样的,后者是现在Python标准库里的默认选项。不过,如果你用sqlite3的话,可以把图片存储在一个叫buffer对象里,然后把这个对象放到sqlite的blob字段中。

不过要注意以下几点:

  • 有些人不太喜欢把图片直接存到数据库里,另一种选择是把文件和路径存到数据库中。
  • 确保你返回正确的mime类型。
3

你真的需要把图片存到数据库里吗?我会把图片存到文件系统里,然后把它的路径存到数据库中。(不过这要看你的具体情况,可能不一定能这样做。)

如果你非得这么做,可以看看 这里

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

如果你需要在网页应用中返回二进制数据 - return cStringIO.StringIO(file['bin'])

撰写回答