get_serving_url返回'Key'类型的对象没有len()

时间:2012-07-01 01:21:21

标签: google-app-engine

我正在尝试从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密钥。

1 个答案:

答案 0 :(得分:1)

您可能希望在将密钥对象传递给str()之前调用get_serving_url()。它很可能期待密钥的字符串形式。

在原始版本中使用它的原因是因为使用带有%格式说明符的%s运算符会自动调用str()来确定要插入的字符串。