App Engine devserver查询过滤器无法正常工作

时间:2012-02-20 11:26:37

标签: python google-app-engine

在查询过滤时,我看到App Engine的本地 devserver 出现了一些奇怪的行为。

我已经实施了这个Sharded Counter。

http://code.google.com/appengine/articles/sharding_counters.html

这就是我所看到的:

  1. 我增加了计数器,并且计数器实体已成功创建,并且计数会按原样更新。
  2. 此后立即调用get_count()时,它返回刚创建的GeneralCounterShard实体的计数
  3. 片刻之后,当我调用getCount()时,它什么也没有返回。
  4. 调试后,我注意到应该与我想要计数的GeneralCounterShard实体匹配的查询与提供的名称不匹配。

    def get_count(name):    
    """Retrieve the value for a given sharded counter.
    Parameters:      name - The name of the counter    """
    total = memcache.get(name)
    if total is None:
        total = 0
        for counter in GeneralCounterShard.all().filter('name = ', name):
            total += counter.count
            memcache.add(name, total, 60)
    return total
    

    因此,当 具有数据库中提供的名称的GeneralCounterShard实体时,上面代码中的过滤器不匹配任何内容。

    我必须说我是App Engine和Python的新手,但是我不明白为什么这会工作片刻然后它不再存在了。实体仍在数据库中。

    这可能是某种错误还是我错过了什么?

    谢谢!

1 个答案:

答案 0 :(得分:1)

在这个片段中:.filter('name =',name)我认为你需要删除=后的空格。