2011-05-08 43 views
0

在Django中,我想基於用戶輸入(POST)使用R函數(因此經由Rpy2)來創建一個圖像,然後顯示圖像返回給用戶。創建/顯示基於用戶輸入的圖像 - 的Django

我的做法:將圖像保存到一個文件,並在模板(同一模板的形式)顯示。

1)這是正確的做法?

然後我發現有時當我幾次用不同的參數提交表單,我得到了相同的圖像回來時,我不應該,所以有些類型的緩存會(在瀏覽器?)。我還擔心不小心將一個用戶創建的圖像傳遞給另一個同時用戶。

所以表單提交時,我添加一個隨機數到圖像的名稱,得到一個新的形象名稱(新圖)每次。

2)這是一個合理的做法?

我有我做事的笨方法一種直覺,但我不知道我應該做的。

回答

1

得到瀏覽器緩存,你可以簡單地添加圖像的URL的隨機查詢參數,這樣

<img src="assest/images/img1.png?randomstring/> 

至於如果它是一個合理的方法,這取決於這些圖像是否需要每次用戶訪問該頁面時都會重新生成。它是這樣的話,你最好通過視圖直接服務於這些圖像,就像this。否則,您將需要刪除這些永遠不會再使用的圖像。

如果不知爲何,你就需要重複使用這些圖片,只要記住,必須有一個防止您的硬盤驅動器中使用了一種機制。

+0

我正在從(1,2,3,...,100)中添加一個隨機數到圖像名稱的末尾 - 所以在它們開始彼此保存之前,我無法獲得超過100個。 – DavidC 2011-05-09 01:33:22

+0

你還沒有告訴我們,做ü真的需要保存這些照片?我的意思是,你需要緩存它們嗎?作爲該名稱重疊,只是使用比其他別的東西(1 .. 100),如當產生圖片時,或一個UUID。或者您可以使用此模塊:http://docs.python.org/library/tempfile.html – ablmf 2011-05-09 02:05:46

+0

感謝。我不*需要保存圖片,但我不知道還有什麼要做。我並沒有真正理解直接從視圖中提供圖片的答案,但我會回過頭去嘗試再次閱讀。 – DavidC 2011-05-10 18:11:06