BadKeyError:无效的字符串键

Jon*_*lin 2 python google-app-engine google-cloud-datastore

尝试创建可从GAE数据存储中提供图片的脚本时出现此错误。

  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore_types.py", line 379, in __init__
    raise datastore_errors.BadKeyError('Invalid string key %s.' % encoded)
BadKeyError: Invalid string key 5066549580791808.
Run Code Online (Sandbox Code Playgroud)

使用此代码:

class ImageHandler(MainHandler):
    def get(self):
        greeting = db.get(self.request.get('id'))
        if greeting.image:
            self.response.headers['Content-Type'] = 'image/png'
            self.response.out.write(greeting.image)
        else:
            self.error(404)
Run Code Online (Sandbox Code Playgroud)

此类是根据GAE上的图片文档创建的

Woo*_*ble 5

5066549580791808不是密钥,而是ID。

您需要使用SomeModel.get()db.get()需要整个密钥,包括模型和路径。