我正在尝试从blobstore返回缩略图。对于完整的图像,我通常写出
<img src='img?img_id=%s'></img>" % greeting.key()
(问候在循环中获取数据库中的图像选择),包含处理程序('/img', ImageHandler)
和函数
class ImageHandler(webapp.RequestHandler):
def get(self):
greeting = db.get(self.request.get("img_id"))
if greeting.picture:
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(greeting.picture)
else:
self.error(404)
这很有效。但是,使用get_serving_url时,请调用
<img src='img?img_id=%s'></img>" % (images.get_serving_url(greeting.key(), 32))
我得到TypeError: object of type 'Key' has no len()
。我只能假设我使用的blob密钥不正确,但据我所知,是 blob密钥。
答案 0 :(得分:1)
您可能希望在将密钥对象传递给str()
之前调用get_serving_url()
。它很可能期待密钥的字符串形式。
在原始版本中使用它的原因是因为使用带有%
格式说明符的%s
运算符会自动调用str()
来确定要插入的字符串。