Django集成Highcharts实现近七天文章点击量统计
本文介绍如何在Django项目中集成Highcharts库,通过前端JS配置与后端Python逻辑配合,统计并展示最近七天的文章点击量及点赞量。内容涵盖插件引入、图表容器定义、JS配置、路由映射及后台数据获取方法,帮助开发者快速实现数据可视化功能。
Highcharts插件引入与前端配置
首先,需要将Highcharts相关插件下载并放置于项目的static文件夹中,以便后续前端调用。
在前端页面中引入必要的JavaScript文件,确保图表库功能可用。
<script src="/static/highcharts/highcharts.js"></script>
<script src="/static/highcharts/modules/exporting.js"></script>
<script src="/static/highcharts/modules/oldie.js"></script>
<script src="/static/highcharts/highcharts-zh_CN.js"></script>
在HTML页面中定义用于展示图表的容器位置,指定其宽度和高度。
<div id="container" style="min-width:400px;height:400px"></div>
编写前端JavaScript代码,配置Highcharts图表的各项参数,包括类型、标题、坐标轴及数据系列。
<script>
var chart = Highcharts.chart('container', {
chart: {
type: 'line'
},
title: {
text: '日点击量和点赞量统计'
},
subtitle: {
text: '数据来源: terroristhouse.com'
},
xAxis: {
categories: {{ list_week_day|safe }}
},
yAxis: {
title: {
text: '数量 (次)'
}
},
plotOptions: {
line: {
dataLabels: {
// 开启数据标签
enabled: true
},
// 关闭鼠标跟踪,对应的提示框、点击事件会失效
enableMouseTracking: false
}
},
series: [{
name: '点击量',
data:{{ clicknum_list|safe }}
}, {
name: '点赞量',
data: {{ praise_num_list|safe }}
}]
});
</script>
Django路由与后端数据处理
配置Django路由,将特定的URL路径映射到处理点击量统计的视图函数。
# 点击量统计
re_path('article/click/', article.click,name='article/click/'),
在后端编写视图函数,接收请求并处理数据逻辑,返回包含统计结果的页面。
from blog.utils import function
# 点击量
def click(request):
recent_seven_days = function.recent_seven_days()
list_week_day = recent_seven_days[::-1] # 进行倒序
clicknum_list = []
praise_num_list = []
# print(list_week_day)
for v in list_week_day:
click_num_obj = Praise.objects.filter(click_addtime=v,click_sort=1).aggregate(clicknum=Count('click_sort'))
praise_num_obj = Praise.objects.filter(click_addtime=v,click_sort=0).aggregate(praise_num=Count('click_sort'))
# print(click_num_obj['clicknum'],praise_num_obj['praise_num'])
clicknum = int(click_num_obj['clicknum']) if (click_num_obj['clicknum'] is not None) else 0
praise_num = int(praise_num_obj['praise_num']) if (praise_num_obj['praise_num'] is not None) else 0
clicknum_list.append(clicknum)
praise_num_list.append(praise_num)
# print(clicknum_list)
# data=[{
# 'name': '点击量',
# 'data': clicknum_list
# }, {
# 'name': '点赞量',
# 'data': praise_num_list
# }]
# num= [ '20190624', '20190625', '20190626', '20190627', '20190628', '20190629', '20190630']
return render(request,'article/click.html',locals())
日期获取工具函数实现
在应用目录下创建utils文件夹,并在其中创建function.py文件,用于封装获取最近七天日期的工具函数。
# 七天日期
def recent_seven_days():# 通过for 循环得到天数,如果想得到两周的时间,只需要把8改成15就可以了。
import datetime
d = datetime.datetime.now()#2019-6-28 9:25:43.843164
lists = []
for i in range(1,8):#i:1-7
oneday = datetime.timedelta(days=i) #1 day, 0:00:00 2 days, 0:00:00 ... 7 days, 0:00:00
day = d - oneday#2019-06-27 11:32:10.186535 2019-06-26 11:32:10.186535 ... 2019-06-21 11:32:10.186535
date_to = datetime.datetime(day.year, day.month, day.day)#2019-06-27 00:00:00 2019-06-26 00:00:00 ... 2019-06-21 00:00:00
lists.append(str(date_to)[0:10])#2019-06-27 2019-06-26 ... 2019-06-21
return lists
展示最终页面渲染效果,用户可查看到清晰的点击量与点赞量统计图表。

总结整个实现过程,确认各步骤配合无误,功能正常运行。
以上所述是小编给大家介绍的django项目用higcharts统计最近七天文章点击量,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













