Pythonとjinja2を使用してGoogleAppEngineでWebアプリケーションを構築しています。私はユーザーが投稿を書くことができるウェブサイトを持っています、そして私は15の主要なカテゴリーを持っていて、それらのそれぞれは4つの部門を持っています。リーダーとポスターの比率が20:1であるため、memcacheを実装したいのですが、60の異なるキーを作成せずに実装するにはどうすればよいですか?私はそれをそのようにすべきですか?または、データベースにアクセスして結果を並べ替え、次のようにそれらの結果を取得する関数にいくつかのパラメーターを設定する必要があります。
def posts_cache(update = False, category = None, sport = None):
key = 'main'
posts = memcache.get(key)
if posts is None or update:
logging.error("DB QUERY")
posts = db.GqlQuery("SELECT * "
"FROM Post "
"ORDER BY created DESC "
"LIMIT 100",
key)
posts = list(posts)
memcache.set(key, posts)
if category and sport:
sportcatlist = []
for post in posts:
if post.category == category:
if post.sport == sport:
sportcatlist.append(post)
return sportcatlist
elif category:
categorylist = []
for post in posts:
if post.category == category:
categorylist.append(post)
return categorylist
elif sport:
sportlist = []
for post in posts:
if post.sport == sport:
sportlist.append(post)
return sportlist
return posts
それとも、それを行うためのより効率的な方法はありますか?