检查App Engine数据存储区中是否存在记录

时间:2011-04-08 23:47:52

标签: python google-app-engine google-cloud-datastore

据我所知,这是我应该检查任何记录......

    v = PC_Applications.all().filter('column =', value)
if not v:
    return False

但这会返回错误!

  

IndexError:查询返回的结果少于1个

这样做有什么想法吗?我读过.count()是一个糟糕的选择。我是Python和App Engine的新手,所以非常感谢你的耐心!

3 个答案:

答案 0 :(得分:7)

if not v.get():

来自App Engine, Query Class get()

  

执行查询,然后返回   第一个结果,如果查询则为None   没有结果。

答案 1 :(得分:3)

这应该有效:

q = db.Query(PC_Applications, keys_only = True)
if not q.get():
    return false

我认为.all().filter('column =', value)甚至比.count更糟糕,因为它不会进行仅限密钥查询。

答案 2 :(得分:0)

如果您确实想要使用这些记录,请执行以下操作:

results = PC_Applications.all().filter('column =', value).fetch(how_many_you_want)
if results:
    do_something_to_display_them()
else:
    do_something_else()