GAE NDB:有效地计算和显示实体的视图计数

时间:2014-04-25 14:27:49

标签: google-app-engine python-2.7 jinja2 app-engine-ndb webapp2

我想显示直接在其模板上查看实体的次数。例如,给定Book ndb.Model

class Book(ndb.Model):
    title = ndb.StringProperty()
    view_count = ndb.IntegerProperty(default = 0)

由此处理:

class BookPage(MainHandler):
    def get(self, book_id):
        book = Book.get_by_id(int(book_id))
        self.render(book-page.html, book = book)

这是book-page.html:

<h2>{{book.title}} | {{book.view_count}}</h2>

一种方法是我们可以设置view_count = view_count + 1,然后设置book.put(),但这将涉及大量的数据库写入。

必须有更好的方法。

1 个答案:

答案 0 :(得分:1)

计数器信息是持久的,除了将其写入数据存储区之外,您没有其他选择。

为了更有效,更快速地实施,我会邀请您查看Sharding counters