2014-04-25 48 views
0

我想顯示實體在其模板上直接查看的次數。例如,鑑於此Book ndb.ModelGAE NDB:有效計算和顯示實體的查看次數

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

這裏是書page.html中:

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

它是由該處理

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

一種方法是,我們可以設置view_count = view_count + 1,然後book.put(),但這會涉及大量的db寫入。

必須有更好的方法。

回答

1

計數器信息是持久的,除了將其寫入數據存儲之外,您沒有其他選擇。

爲了更有效和快速的實施,我會邀請你來看看Sharding counters

+1

還要注意的是簡單的增加沒有任何的約束保護將帶領您無數的項目。事務/和/或memcache可以用來避免這種情況。 –