2015-06-20 29 views
3

我是新來的Django,我一直在尋找網站,以找到很好的方法來存儲使用python生成的圖像(似乎有矛盾的意見將其保存到本地文件夾,文件或數據庫)。我的網站唯一的目的是一直製作qrcodes。在我的本地機器我將它保存在我的程序文件夾,如:在python中生成的圖像到Django數據庫(MySQL)

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

我遇到了在那裏我將處理許多用戶做同樣的事情的情況。我懷疑保存到本地文件夾將是一個可行的選擇。我設置爲將這些圖像保存爲mysql中的斑點。 有沒有人做過這樣的事情?如果是這樣,那麼最好的實現方式是什麼。示例代碼也是有幫助的。

+0

到目前爲止,您是否完成了Google搜索?這已經被問了很多次了。 http://stackoverflow.com/a/2371424/3872976 – deathangel908

+0

我GOOGLE了,我越來越困惑的答案 – Godfrey

回答

3

將圖像存儲在數據庫中有些是邊緣情況。爲了減輕數據庫,我不會將它們存儲在數據庫中,而是存儲在服務器上的一個文件夾中。

我明白你的問題,所以有些用戶可能會創建相同的qr碼。在這種情況下,我會創建一個數據庫表像:

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

有了這張表,你可以找到編碼值上的QR碼。如果某個條目存在某個給定值,則只能返回存儲其名稱的文件的內容。

留下一個問題:如何創建文件名。有很多可能性。一個是創建一個UUID並從中創建一個文件名。另一種選擇是使用全局計數器併爲每個文件指定一個新的數字。計數器當然必須存儲在數據庫表中。

當然,如果需要,您仍然可以將圖像存儲在數據庫中。只是不要使用fname字段,而是使用存儲內容的blob字段。該解決方案應該適用於大多數數據庫,但是當您擁有大量數據時,該解決方案可能比文件方法慢。

+0

因此,圖像作爲文件夾中的文件。和一個數據庫來跟蹤。非常豐富。我會嘗試這種方法,因爲它是現在唯一的答案。 – Godfrey