Entity Kind :Football
Entity Key :ag9kZXZ-YWNxdWl0d29ybGRyFQsSCEZvb3RiYWxsGICAgICA8IsKDA
ID : 5681726336532480
email (string)
manutd@gmail.com
identity (string)
Manchester United
这是我数据存储区中的数据。现在我想根据input(Emailid)
搜索详细信息。因此,如果我输入电子邮件详细信息,我想获取相应的俱乐部名称并将其打印在Html
页面上。我写了以下代码
class searchApp(webapp2.RequestHandler):
def get(self):
#self.response.out.write(que)
name=self.request.get('last_name')
player_key=Football.query()
#qry=Football.Key(5891733057437696)
qry=player_key.filter(Football.email==name)
#for qry2 in qry:
self.response.out.write('<b>%s</b> wrote:' % qry.identity())
根据我的理解,qry
是一个对象,所以我需要使用for循环并打印结果,如qry2.email
,qry2.identity
。但由于某种原因,我无法这样做,因此我评论了那一部分。需要知道如何获取详细信息。
我收到以下错误:
self.response.out.write('<b>%s</b> wrote:' % qry.identity())
AttributeError:'Query'对象没有属性'identity' 怎么可能,因为我的模型功能有电子邮件和身份。
答案 0 :(得分:0)
如果识别是模型上的字段,则不需要使用()调用它,因为它不是函数。
这是错误的:
identity = qry.identity()
这是对的:
identity = qry.identity
但是因为你有一个查询对象而不是一个模型,所以它不会起作用。再看一下文档
https://cloud.google.com/appengine/docs/python/datastore/queryclass
q = db.Query(Song)
for song in q:
print song.title
并非song.title
未表示为song.title()
您只能写一次响应,因此您需要以下内容:
q = db.Query(Song)
data = []
for song in q:
data.append(song.title)
self.response.out.write(','.join(data))
将标题列表粘贴在一个用逗号分隔的单个字符串中。
再看看文档。你的问题与他们的例子几乎相同。