pysqlite - 如何保存图片
我想把一张图片文件存到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'])