jinja2をテンプレートシステムとして使用して、PythonでGoogle App Engine上にWebアプリケーションを作成しています。このアプリでは、基本的に、ユーザーが投稿/コメントを書き込んだり、他のユーザーの投稿をランク付けしたりできます。ランキングシステムは、賛成/反対の数とコメントの数に基づいています。memcacheを使用してこの計算値を保存し、それに応じて投稿をランク付けしようとしています。
書き込みコストが高くならないように、たまに値をデータベースに保存したいだけです。カウンターを設けて、10票/コメントごとにデータベースに保存する予定です。私はこのようなことを考えていました:
# I update the counter every time that I add a vote or comment
counter = 0
def posts_cache(update = False):
global counter
key = 'main'
posts = memcache.get(key)
if posts is None or update:
logging.error("DB QUERY")
posts = db.GqlQuery("SELECT * "
"FROM Post "
"ORDER BY rank DESC "
"LIMIT 100",
key)
posts = list(posts)
memcache.set(key, posts)
if counter>=10:
counter = 0
#put the memcache posts in the database
return posts
しかし、memcacheにある投稿を取得して、データベースに保存する方法がわかりません。Pythonでこれを行う方法はありますか?ドキュメントを調べましたが、明確な方法が見つかりませんでした。