0

我用下面的代码之前:如何跟踪新添加的记录到NDB数据存储?

def add_movie(movie_id, title, picture, description): 
    movie = Movies(
     id=movie_id, 
     title=title, 
     picture=picture, 
     description=description 
     ) 
    movie.put() 

,但它并没有让我知道,如果电影中添加新的记录,或者如果现有的电影是更新。所以,我已经改变了代码如下:

def add_movie(movie_id, title, picture, description): 
    newly_added = True 
    movie = Movies.get_by_id(movie_id) 
    if movie: 
     newly_added = False 
    movie.id = movie_id 
    movie.title = title 
    movie.picture = picture 
    movie.description = description 
    movie.put() 
    return newly_added 

不过貌似它首先会后,才将更新它让电影。所以2请求数据存储区而不是1.

有没有其他方法可以做同样的事情? 或者,我错了吗?从性能的角度来看,两种方法都是一样的?

回答

3

不,没有其他办法。

这会影响性能,因为额外get请求,但'得到'是相当快and cheap,所以不用担心它。

2

作为@Peter说:获取操作非常便宜,我不会担心它,但你仍然可以将电影ID存储在memcache中,并主要检查它是否存在,如果它存在那么电影不是新的,如果它不在那里检查数据存储。