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

2024-10-16 22:30:27 发布

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

我是django的新手,我一直在搜索这个站点,以找到存储使用python生成的图像的好方法(在将其保存到本地文件夹、文件或数据库时,似乎存在矛盾的观点)。我的网站唯一的功能就是一直制作qrcodes。在本地计算机中,我会将其保存在程序文件夹中,如下所示:

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

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


Tags: 文件django方法图像功能文件夹数据库png
1条回答
网友
1楼 · 发布于 2024-10-16 22:30:27

在数据库中存储图像是一种边缘情况。为了释放数据库,我不会将它们存储在数据库中,而是存储在服务器上的文件夹中。在

我理解你的问题,所以有些用户可能会创建相同的二维码。在本例中,我将创建这样的数据库表:

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

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

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

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

相关问题 更多 >