金字塔+ZODB图像存储

2024-10-01 11:20:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个upload表单,它接受一个zip文件,并有一个解压它并从中获取每个文件的方法。从md5哈希中生成一个唯一的id,并将其存储在字典中

dict[uid] = imagebinary

并返回它,以便窗体可以将它们存储到ZODB中。我不能像那样存储图像,因为这个错误会暴露出来

^{pr2}$

那么,我该怎么做呢?我几乎被困在这件事上了。在


Tags: 文件方法图像id表单uid字典错误
1条回答
网友
1楼 · 发布于 2024-10-01 11:20:10

您看到的错误与ZODB中的图像存储无关。在

为了存储更大的数据块,您确实希望使用ZODBBlob,而不是将图像数据直接放入属性中。Blobs单独存储在磁盘上,不刷新ZODB缓存,并且可以在再次访问时流式传输回客户机。在

要创建和存储Blob,请使用:

from ZODB.blob import Blob

uid = Blob(imagebinary.read())

这样创建之后,您可以稍后使用uid作为文件;您需要先以读或写模式打开它。例如,要从视图返回blob的内容,请使用:

^{pr2}$

blob绑定到事务,如果事务回滚,对它们的更改将自动放弃。在

相关问题 更多 >