我是django的新手,我一直在搜索这个站点,以找到存储使用python生成的图像的好方法(将其保存到本地文件夹、文件或数据库似乎有矛盾的观点)。我的网站唯一的目的是一直做qrcode。在我的本地机器中,我会将它保存在我的程序文件夹中,例如:
import pyqrcode
qr = pyqrcode.create("{'name': 'myqr'}")
qr.png("horn.png", scale=6)
print "All done!"我遇到的情况是,我将处理许多用户做同样的事情。我怀疑将其保存到本地文件夹是否可行。我决定将这些图像保存为mysql中的blobs。有人做过这种事吗?如果是这样的话,implement.Example代码的最佳方法也将是有帮助的。
发布于 2015-06-20 14:11:12
在数据库中存储图像在某种程度上是一种边缘情况.为了释放数据库,我不会将它们存储在数据库中,而是存储在服务器上的一个文件夹中。
我理解你的问题,有些用户可能会创建相同的qr代码。在本例中,我将创建一个这样的数据库表:
CREATE TABLE qrcodes (
value TEXT PRIMARY KEY,
fname TEXT
);使用此表,您可以通过编码值找到qr码。如果给定值存在一个条目,则可以只返回其名称被存储的文件的内容。
留下一个问题:如何创建文件名。有很多可能性。一种方法是创建一个UUID并从中创建一个文件名。另一种选择是使用全局计数器并给每个文件一个新的编号。当然,计数器必须存储在数据库表中。
当然,如果需要的话,您仍然可以将图像存储在数据库中。只是不要使用fname字段,而是使用存储内容的blob字段。该解决方案应该可以在大多数数据库上工作,但是当您拥有大量数据时,可能会比文件方法慢一些。
https://stackoverflow.com/questions/30954666
复制相似问题