一. 每日阅读统计
1. 每日阅读计数统计模型
# blogstatistics.models.py
class ReadDetailNum(models.Model):date = models.DateField(default=timezone.now) #日期read_num = models.IntegerField(default=0) # 阅读数content_type = models.ForeignKey(ContentType,on_delete=models.DO_NOTHING) object_id = models.PositiveIntegerField()content_object = GenericForeignKey('content_type','object_id') # ContentType
2. 每日阅读计数统计方法
利用object.aggregate(Sum())方法进行相关统计。
# blogstatistics.views.py
def get_seven_days_read_data(content_type):today = timezone.now().date()date_list=[] #前七天日期列表read_nums=[] #前七天日期对应阅读数# 利用Sum方法进行统计for i in range(7,0,-1):date = today-datetime.timedelta(days=i)date_list.append(date.strftime('%m-%d'))read_details = ReadDetailNum.objects.filter(content_type=content_type,date=date)result = read_details.aggregate(read_num_sum=Sum('read_num'))read_nums.append(result['read_num_sum'] or 0)return date_list,read_nums
二. 图表显示
将统计数据显示在“home.html”模版中。
1. HighCharts框架
Highcharts 是一个用纯 Javascript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。
Highcharts 支持的图表类型有直线图、曲线图、区域图、柱状图、饼状图、散状点图、仪表图、气泡图、瀑布流图等多达 20 种图表,其中很多图表可以集成在同一个图形中形成混合图。
2. 一分钟上手HighCharts框架
注明:学习资料来自“再敲一行代码的个人空间”以及“杨仕航的博客”