如何使用谷歌应用引擎在Html中打印查询输出

时间:2015-04-04 08:13:48

标签: python google-app-engine

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.emailqry2.identity。但由于某种原因,我无法这样做,因此我评论了那一部分。需要知道如何获取详细信息。

我收到以下错误:

self.response.out.write('<b>%s</b> wrote:' % qry.identity())

AttributeError:'Query'对象没有属性'identity'      怎么可能,因为我的模型功能有电子邮件和身份。

1 个答案:

答案 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))

将标题列表粘贴在一个用逗号分隔的单个字符串中。

再看看文档。你的问题与他们的例子几乎相同。