{%for result in results%}
{{result.photo}}
{%endif%}
这显然不起作用,但我找不到有关如何上传照片的任何信息。在管理控制台上,我可以看到我已成功将图像上传到blobstore,现在我该如何将其发送到我的webapp模板?
我可以显示这样做的描述。
{%for result in results%}
{{result.description}}
{%endif%}
但我不知道如何让GAE将图像文件作为图像读取。
非常感谢任何帮助。 谢谢大家!
答案 0 :(得分:2)
我写了一篇关于这个主题的教程。阅读它,如果您在此处发布任何具体问题。 http://verysimplescripts.blogspot.com/
答案 1 :(得分:2)
模板中应该有<img>
标记,其src
属性包含应用程序提供的URL并提供图像数据。例如,假设您将图像存储在名为Image:
class Image(db.Model):
filename = db.StringProperty() # The name of the uploaded image
mime_type = db.StringProperty() # The mime type.
content = db.BlobProperty() # The bytes of the image
def load(id):
# Load an entity from the database using the id. Left as an
# exercise...
def link_id_for(self):
"Returns an id that uniquely identifies the image"
return self.key().id()
在呈现包含图像的页面的控制器/请求处理程序代码中,您将link_id_for
返回的ID传递给模板,模板将包含您的图像标记,如下所示:
<img src="/images/show/{{image_id}}">
您将拥有一个处理/images/show/id
请求的请求处理程序。您可以使用 id 将Image实体从数据存储区中取出并将其发送回响应中,如下所示:
found_image = Image.load(id)
response.headers['Content-Type'] = str(found_image.mime_type)
response.out.write(found_image.content)
显然,您必须根据当前的应用程序结构和惯例调整代码的细节,但这是它的核心:使用img
标记,其中src
指向您的应用;您的应用程序包括一个请求处理程序,它传递字节和Content-Type
标题。