2011-05-08 82 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