1

我是 python 和谷歌应用引擎的新手,所以这将是一个基本问题,但我在其他地方找不到答案......

我试图通过将密钥(由 GAE 生成)从 HTML 页面传回 python 来检索记录。

我的 html 调用是

<a href="/playerprofile?uid=ahRkZXZ-Y293YnJpZGdlYm9va2luZ3IWCxIGTWVtYmVyIgpKb2huIEpvbmVzDA">John Jones</a>

然后我试图像这样把它从桌子上拉出来

uid = self.request.get('uid')
m = Member.all().filter('Key = ',uid)

它不检索任何东西。我该怎么做?

4

2 回答 2

2

你不能这样做。密钥以 urlsafe 形式编码

您应该使用编码的密钥构造密钥Key(encoded=None)

k = Key(uid)
m = Member.get(k)

关于密钥的文档https://developers.google.com/appengine/docs/python/datastore/keyclass

但是,鉴于您是 appengine 的新手,您不应该使用db。您应该开始使用ndb作为数据存储 api,因为这就是 google 的开发投资的去向。

如果您在这种情况下使用 ndb,您将使用以下内容

m = Key(urlsafe=uid).get()
于 2013-09-03T01:02:07.910 回答
0

我会Model.get_by_key_name()改用:

uid = self.request.get('uid')
m = Member.get_by_key_name(uid)

这是App Engine 文档中有关它的更多信息。

于 2013-09-02T16:33:57.343 回答