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
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)
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
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)
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)
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)
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)