Python 属性错误:';GqlQuery';对象没有属性';键';

Python 属性错误:';GqlQuery';对象没有属性';键';,python,google-app-engine,python-2.7,jinja2,Python,Google App Engine,Python 2.7,Jinja2,如何检索和显示GQL查询返回的多个结果的键 main.py class MainPage(webapp2.RequestHandler): def get(self): author = "William Shakespeare" q = db.GqlQuery("SELECT * FROM Book " + "WHERE author = :1 ", author)

如何检索和显示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\u google\u app\u engine\u repo\datastore\main.py”,第行 17岁,入伍 key=q.key()AttributeError:'GqlQuery'对象没有属性'key'


您的代码存在多个问题。请退后一步,想想你想做什么,再浏览一下文档

问题1
GqlQuery
的结果没有键。您需要使用
.get()
.fetch(1)
访问
书籍
对象

q = db.GqlQuery("SELECT * FROM Book WHERE author = :1 ", author)
my_book = q.get()
问题2
要获取
方法的值
,您需要记住包含括号/括号

my_book_key = my_book.key() # don't forget the parens/brackets

template_values = { 
    'author': author,
    'key': my_book_key,         
}