检查App Engine Datastore中是否存在记录

7 投票
3 回答
3688 浏览
提问于 2025-04-16 15:22

根据我所了解的,这就是我应该检查是否有记录的方法...

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

但是这样做却返回了一个错误!

索引错误:查询返回的结果少于1个

有没有什么好的办法来解决这个问题?我听说使用 .count() 不是个好主意。我刚开始学习Python和App Engine,所以谢谢大家的耐心!

3 个回答

0

如果你真的想使用这些记录,可以这样做:

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

这个应该可以用:

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

我觉得 .all().filter('column =', value).count 还要糟糕,因为它不是在做只查询键的操作。

7
if not v.get():

来自 App Engine,查询类的 get() 方法

这个方法会执行查询,然后返回第一个结果。如果查询没有找到任何结果,就返回 None。

撰写回答