缓存用户特定的查询django

时间:2015-10-07 00:20:20

标签: json django caching

我有一个存储媒体网址(图片/视频)的桌子和一个消费这些网页的前端应用程序。我正在尝试实现缓存,以使所有运行更快,更具可伸缩性。

问题是我有一个喜欢的表来存储特定用户喜欢的视频/图像。我需要返回一个布尔值以及图像/视频网址,表明此人是否已经喜欢该媒体。

现在我只是缓存返回的图像/视频的json,然后从缓存中抓取并在json响应中插入'likes'属性。这看起来像这样:

运行并检查缓存中是否有特定的媒体页面:

media_json = cache.get('media'+username+str(page))
if media_json:
    new_json = []
    media_ids = []
    for media in tags_json:
        media_ids.append(media['media_id'])

    user_likes = Like.objects.filter(created_by=user,media__pk__in=media_ids)

    for media in media_json:

        liked = False
        for user_like in user_likes:
            if user_like.media_id == int(media['media_id']):
                liked = True

        media['liked'] = liked
        new_json.append(media)

    return JsonResponse({'response': 1, 'media': new_json})

如果该媒体页面不在缓存中,那么我查询数据库并从头开始创建json响应。

如何缓存用户喜欢某个媒体的内容?我最好不要再次查询数据库。

0 个答案:

没有答案