0

엔티티를 템플릿에서 직접 본 횟수를 표시하고 싶습니다. 예를 들어, 주어진이 Book ndb.Model :GAE NDB : 엔티티의 조회수를 효율적으로 계산하고 표시합니다.

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) 

을 그리고 여기에 책 page.html입니다 :

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

한 가지 방법은 우리가 할 수 있다는 것입니다 view_count = view_count + 1을 설정하고 book.put()을 설정하십시오. 그러나이 작업에는 많은 수의 db 쓰기가 필요합니다.

더 좋은 방법이 있어야합니다.

답변

1

카운터 정보가 지속적이므로 데이터 저장소에 쓰는 것 외에 다른 옵션이 없습니다. 내가 Sharding counters

+1

을 확인하기 위해 당신을 초대합니다 것보다 효율적이고 빠른 구현을 위해

또한 간단히 잠금 보호없이 추가하는 무수한 항목에 당신을 이끌 것입니다 있습니다. 트랜잭션/및/또는 memcache를 사용하면 그걸 막을 수 있습니다. –

관련 문제