Exemplo n.º 1
0
def get_datas_from_cache(blog_content_type):
    # 今天热门博客排行,一个小时更新一次
    today_hot_data = cache.get('today_hot_data')
    if not today_hot_data:
        today_hot_data = get_today_hot_data(blog_content_type)
        cache.set('today_hot_data', today_hot_data, 60 * 60)

    # 昨天热门博客缓存
    yesterday_hot_data = cache.get('yesterday_hot_data')
    if not yesterday_hot_data:
        yesterday_hot_data = get_yesterday_hot_data(blog_content_type)
        cache.set('yesterday_hot_data', yesterday_hot_data, 60 * 60 * 12)
    yesterday_hot_data = get_yesterday_hot_data(blog_content_type)

    # 7天热门博客缓存数据
    seven_days_hot_data = cache.get('seven_days_hot_data')
    # 如果缓存数据为空
    if not seven_days_hot_data:
        # 得到数据
        seven_days_hot_data = get_7_days_hot_blogs()
        # 并写入缓存,以及设置缓存时间,以秒为单位
        # 缓存到期后,便会自动删除缓存,然后便会为None了
        cache.set('seven_days_hot_data', seven_days_hot_data, 60 * 60 * 24)
    # 30天热门博客缓存
    thirty_days_hot_data = cache.get('thirty_days_hot_data')
    if not thirty_days_hot_data:
        thirty_days_hot_data = get_30_days_hot_blogs()
        cache.set('thirty_days_hot_data', thirty_days_hot_data, 60 * 60 * 24)

    return today_hot_data, yesterday_hot_data, seven_days_hot_data, thirty_days_hot_data
Exemplo n.º 2
0
def home(request):
    context = {}
    blog_content_type = ContentType.objects.get_for_model(Blog)
    dates, read_nums = get_seven_days_read_data(blog_content_type)

    # 获取七天热门博客的缓存数据
    hot_blogs_for_7_days = cache.get('hot_blogs_for_7_days')
    if hot_blogs_for_7_days is None:
        hot_blog_for_7_days = get_7_days_hot_blogs()
        cache.set('hot_blogs_for_7_days', hot_blog_for_7_days, 3600)

    context['read_nums'] = read_nums
    context['dates'] = dates
    context['today_hot_data'] = get_today_hot_data(blog_content_type)
    context['yesterday_hot_data'] = get_yesterday_hot_data(blog_content_type)
    context['hot_blogs_for_7_days'] = get_7_days_hot_blogs()
    return render(request, 'home.html', context)
Exemplo n.º 3
0
def comment(request):
    context = {}
    context['blog'] = get_object_or_404(Blog, pk=1)
    visitNumber = VisitNumber.objects.aggregate(nums=Sum('count'))
    context['blog_tags'] = BlogTag.objects.annotate(blog_count=Count('blog'))
    context['visitNumber'] =visitNumber['nums']
    context['blogNumber'] = Blog.objects.count()
    context['hot_blogs_for_7_days'] = get_7_days_hot_blogs()
    context['links_list'] = links_list()
    response = render(request, 'comment/comment.html', context)  # 响应
    return response
Exemplo n.º 4
0
def home(request):
    change_info(request)
    context = {}
    num = Blog.objects.all().count()
    context['hot_blogs_for_7_days'] = get_7_days_hot_blogs()
    blogs_key = 'blogs_key_{0}'.format(num)
    if cache.has_key(blogs_key):
        blogs_val = cache.get(blogs_key)
    else:
        blogs_val = Blog.objects.order_by('-last_updated_time')[:10]
        cache.set(blogs_key, blogs_val, 3600)
    context['get_article_all'] = blogs_val
    return render(request, 'home.html', context)
Exemplo n.º 5
0
def home(request):
    content_type = ContentType.objects.get_for_model(Blog)
    dates, read_nums = get_seven_days_read_data(content_type)

    # 获取七天热门博客缓存数据
    hot_blogs_for_7_days = cache.get('hot_blogs_for_7_days')
    if hot_blogs_for_7_days is None:
        hot_blogs_for_7_days = get_7_days_hot_blogs()
        cache.set('hot_blogs_for_7_days', hot_blogs_for_7_days, 3600)

    blog_types_list = BlogType.objects.annotate(blog_count=Count('blog'))

    context = {}
    context['blog_types'] = blog_types_list
    context['blog_of_all_nums'] = Blog.objects.all().count()
    context['read_nums'] = read_nums
    context['dates'] = dates
    context['today_hot_data'] = get_today_hot_data(content_type)
    context['yesterday_hot_data'] = get_yesterday_hot_data(content_type)
    context['hot_blogs_for_7_days'] = hot_blogs_for_7_days
    return render(request, 'home.html', context)
Exemplo n.º 6
0
def home(requset):
    """ 主页 """
    blog_content_type = ContentType.objects.get_for_model(Blog)
    read_nums, dates = get_seven_days_date(blog_content_type)  # 获取7天的阅读数量

    # 获取7天热门博客的缓存数据  此缓存需要在setting.py中进行配置
    hot_blogs_for_7_days = cache.get('hot_blogs_for_7_days')
    if hot_blogs_for_7_days is None:
        hot_blogs_for_7_days = get_7_days_hot_blogs()  # 获取7天的博客阅读数量排行
        cache.set('hot_blogs_for_7_days', hot_blogs_for_7_days,
                  3600)  # 键值对形式进行存储 3600秒

    content = {}
    content['read_nums'] = read_nums
    content['dates'] = dates
    content['today_hot_data'] = get_today_hot_data(
        blog_content_type)  # 获取当天的博客阅读数量排行
    content['yesterday_hot_data'] = get_yesterday_hot_data(
        blog_content_type)  # 获取昨天的博客阅读数量排行
    content['hot_blogs_for_7_days'] = hot_blogs_for_7_days  # 获取7天的博客阅读数量排行
    return render(requset, "home.html", content)
Exemplo n.º 7
0
def home(request):  # 首页
    blog_content_type = ContentType.objects.get_for_model(Blog)
    dates, read_nums = get_seven_days_read_data(blog_content_type)

    # 设置数据库缓存(获取7天热门博客数据缓存)
    hot_blogs_7_days = cache.get("hot_blogs_7_days", )
    # if hot_blogs_7_days is None:
    #     hot_blogs_7_days = get_7_days_hot_blogs()
    #     cache.set("hot_blogs_7_days", hot_blogs_7_days, 5)
    #     print("计算")
    # else:
    #     print("使用")

    cache.get_or_set("hot_blogs_7_days", hot_blogs_7_days, 5)

    context = {}
    context["read_nums"] = read_nums
    context["dates"] = dates
    context["today_hot_data"] = get_today_hot_data(blog_content_type)
    context["yesterday_hot_data"] = get_yesterday_hot_data(blog_content_type)
    context["hot_blogs_7_days"] = get_7_days_hot_blogs()
    context["hot_blogs_30_days"] = get_30_days_hot_blogs()
    return render(request, "home.html", context)