我有一个应用程序,用户可以从磁盘上传图像。那个形象 只要用户登录,应用程序的每一页都会显示。在
这是将图像加载到页面的模板部分:
{% if currentService.image %}
<img src='img?img_id={{ currentService.key() }}'></img>
{% else %}
<img src='static/no_image.jpeg' />
{% endif %}
这是我在控制器中进行重定向的方法:
^{pr2}$这是相应的处理程序类:
class ImageHandler(webapp2.RequestHandler):
def get(self):
try:
rsRequest = db.get(self.request.get("img_id"))
if rsRequest.image:
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(str(rsRequest.image))
else:
self.response.out.write("No Image")
except:
tb = traceback.format_exc()
ErrorLog(descripcion = str(tb)).put()
self.doRender('error_page.html', {'mensaje':tb})
这是模型类:
class Service(db.Model):
name = db.StringProperty(required = True)
image = db.BlobProperty()
一切正常。图像总是成功加载。在
但当我在生产中测试我的应用程序时,图像加载速度非常慢,逐渐增加。在
因为我不知道在本地应用程序中加载了什么。在
我该怎么做才能避免缓慢的图像加载?在
尝试从Blobstore服务您的图像,这是为快速处理大型静态负载而设计的。它在本地主机上可能很快,因为dev_appserver将数据存储保存在内存中,但在生产环境中,速度要慢得多。在
原因可能很多。你用过chrome开发工具吗?在
但有一个聪明的解决办法。谷歌可以为你提供图片。几乎免费而且非常快。看看GAE Python图像API的get_serving_url。 下面是一个示例(或者不使用https):
相关问题 更多 >
编程相关推荐