我正在开发一个Google应用引擎项目,我已在数据存储区中保存了一些图像。 现在我必须调整这些图像的大小并将它们渲染到模板中。我已成功获取图像,但我没有得到,如何使用其他数据字典将它们呈现给模板。我正在使用带GAE的App引擎补丁。
以下是我在视图中使用的代码段:
def getData(request,key):
forum = Topic.get(key)
picData = forum.creator.portfolio_set
response = ''
if picData:
picture = picData[0].userpic
response = HttpResponse(picture, mimetype="image/jpeg")
#response['Content-Type'] = 'image/jpeg'
response['Content-Disposition'] = 'inline'
return render_to_response(request,"forum.html",{"forum":forum,"pic":response })
现在,我能够在论坛变量中呈现数据,但却无法获得如何渲染与之关联的图像。我应该在我的视图文件中修改什么,以及我应该在模板中使用什么来显示视图文件呈现的图像。
请建议。
提前致谢。
答案 0 :(得分:2)
解决方案1:
添加通用视图以获取图片,例如/ images / image-id应返回该ID的图像
def get_image(request,image_id): ....
picture = get from id return HttpResponse(picture, mimetype="image/jpeg")
现在在forum.html模板中使用图片网址,就像使用任何普通图片网址一样。
解决方案2:您可以使用data:image
直接嵌入图片,请参阅http://en.wikipedia.org/wiki/Data_URI_scheme
所以试试这个
import base64
def getData(request,key):
forum = Topic.get(key)
picData = forum.creator.portfolio_set
pictureSrc = ''
if picData:
picture = picData[0].userpic
pictureSrc = "data:image;base64,%s"%base64.b64encode(picture)
return render_to_response(request,"forum.html",{"forum":forum,"pic":pictureSrc })