【问题标题】:NDB key.get() gives 'unicode' object has no attribute 'get' errorNDB key.get() 给出 'unicode' 对象没有属性 'get' 错误
【发布时间】:2023-03-16 06:51:01
【问题描述】:

我正在从 db 迁移到 ndb。有一个功能可以在路径中动态提供图像。在 DB 中,我将实体 key(i.key()) 作为 img_id 传递,并使用 db.get(key) 获取图像。

对于 NDB,我尝试通过 key (i.key) 和 entity key(i.key.urlsafe()) 来传递。但是这两种情况我都得到'unicode'对象没有属性'get'错误。

**DB:**
def get(self):
image = db.get(self.request.get('img_id'))

**HTML**
<a class="post-title" href ="{{permalink}}">{{i.content}}</a>
<img src="/img?img_id={{i.key}}"></img>

**NDB**
class ImageHandler(BlogHandler):
def get(self):
    img=self.request.get('img_id')
    image=img.get()
    if image.image:
        self.response.headers['Content-Type'] = 'image/png'
        self.response.out.write(image.image)
    else:
        self.response.out.write('No image')     

我无法找到其中的错误。我是否在 key.get() 中传递了错误的键类型?

【问题讨论】:

    标签: python google-app-engine app-engine-ndb


    【解决方案1】:

    您可以尝试以下方法:

    HTML

    <a class="post-title" href ="{{ permalink }}">{{ i.content }}</a>
    <img src="/img?img_id={{ i.key.urlsafe() }}"></img>
    

    新开发银行

    class ImageHandler(BlogHandler):
    def get(self):
        img_key = ndb.Key(urlsafe=self.request.get('img_id'))
        image = img_key.get()
        if image.image:
            self.response.headers['Content-Type'] = 'image/png'
            self.response.out.write(image.image)
        else:
            self.response.out.write('No image')  
    

    希望这会有所帮助。

    【讨论】:

    • 非常感谢,灭霸。很有帮助。
    猜你喜欢
    • 2013-01-18
    • 2015-10-27
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多