将python中生成的图像存储到Django数据库(MySQL)

时间:2015-06-20 13:44:41

标签: python django

我是django的新手,我一直在寻找网站以找到存储使用python生成的图像的好方法(将其保存到本地文件夹,文件或数据库似乎存在矛盾的观点)。我的网站的唯一目的是始终制作qrcodes。在我的本地机器上,我将它保存在我的程序文件夹中,如:

import pyqrcode
qr = pyqrcode.create("{'name': 'myqr'}")
qr.png("horn.png", scale=6)
print "All done!"

我遇到的情况是我将与许多用户做同样的事情。我怀疑将它保存到本地文件夹是一个可行的选择。我将这些图像保存为mysql中的blob。 有人做过这种事吗?如果是这样,那么实施的最佳方式是什么。示例代码也会有所帮助。

1 个答案:

答案 0 :(得分:3)

将图像存储在数据库中有点边缘。为了减轻数据库的负担,我不会将它们存储在数据库中,而是存储在服务器上的文件夹中。

我理解你的问题,有些用户可能会创建相同的qr代码。在这种情况下,我会创建一个像这样的数据库表:

CREATE TABLE qrcodes (
   value TEXT PRIMARY KEY,
   fname TEXT
);

使用此表,您可以通过编码值找到qr代码。如果存在给定值的条目,则只能返回存储其名称的文件的内容。

留下一个问题:如何创建文件名。有很多种可能性。一种方法是创建一个UUID并从中创建一个文件名。另一种选择是使用全局计数器并为每个文件提供一个新数字。当然,计数器必须存储在数据库表中。

当然,如果需要,您仍然可以将图像存储在数据库中。只是不要使用fname字段,而是使用存储内容的blob字段。该解决方案应该适用于大多数数据库,但是当您拥有大量数据时,它可能比文件方法慢。

相关问题