如何检索和显示从GQL查询返回的多个结果的键?
main.py
class MainPage(webapp2.RequestHandler):
def get(self):
author = "William Shakespeare"
q = db.GqlQuery("SELECT * FROM Book " +
"WHERE author = :1 ", author)
keys = q.Key
template_values = {
'author': author,
'key': key,
}
template = jinja_environment.get_template('index.html')
self.response.out.write(template.render(template_values))
更新1:
当我使用
时keys = q.key()
我收到此错误:
文件“C:\ programming_google_app_engine_repo \ datastore \ main.py”,行 17,在得到 key = q.key()AttributeError:'GqlQuery'对象没有属性'key'
答案 0 :(得分:2)
您的代码存在多个问题。请退后一步,考虑一下您想要做什么,并再次浏览文档。
问题1
GqlQuery
的结果没有密钥。您需要使用.get()
或.fetch(1)
来访问Book
对象。
q = db.GqlQuery("SELECT * FROM Book WHERE author = :1 ", author)
my_book = q.get()
问题2
要获得method
的值,您需要记住包括parens /括号。
my_book_key = my_book.key() # don't forget the parens/brackets
template_values = {
'author': author,
'key': my_book_key,
}