Python .get()和.fetch(1)之间的区别是什么

Python .get()和.fetch(1)之间的区别是什么,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我已经编写了一个应用程序,其中一部分是使用URL解析器以ReST类型的方式获取某些数据。因此,如果将/foo/bar作为路径,它将找到所有的bar项,如果将/foo作为路径,它将返回foo下面的所有项 所以我的应用程序有一个类似 data = Paths.all().filter('path =', self.request.path).get() 这项工作非常出色。现在我想使用模板将其发送到UI {数据%中的数据为%} {{datum.title} {{datum.content} &

我已经编写了一个应用程序,其中一部分是使用URL解析器以ReST类型的方式获取某些数据。因此,如果将/foo/bar作为路径,它将找到所有的bar项,如果将/foo作为路径,它将返回foo下面的所有项

所以我的应用程序有一个类似

data = Paths.all().filter('path =', self.request.path).get()
这项工作非常出色。现在我想使用模板将其发送到UI

{数据%中的数据为%} {{datum.title} {{datum.content}

   </div>
现在,这正是我想要的。在文件中说

函数的作用是:获取 从数据存储中获取密钥的实体 (或钥匙清单)


所以我的问题是,当查询返回时,为什么我可以用
fetch()
迭代查询,而不能用
get()
迭代查询。我的理解哪里出错了?

get()要求(我认为)只有一个元素,并返回它,而fetch()返回前n个元素的列表,在这种情况下,n恰好是1。

您正在查看文档,查找错误的get()。简而言之,.fetch()总是返回一个列表,而.get()则返回第一个结果,如果没有结果,则不返回任何结果

data = Paths.all().filter('path =', self.request.path).fetch(1)