django項目用higcharts統(tǒng)計最近七天文章點擊量
下載higcharts插件放在static文件夾下
前端引入
<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>
定義在頁面中的位置
<div id="container" style="min-width:400px;height:400px"></div>
前端js
<script>
var chart = Highcharts.chart('container', {
chart: {
type: 'line'
},
title: {
text: '日點擊量和點贊量統(tǒng)計'
},
subtitle: {
text: '數(shù)據(jù)來源: terroristhouse.com'
},
xAxis: {
categories: {{ list_week_day|safe }}
},
yAxis: {
title: {
text: '數(shù)量 (次)'
}
},
plotOptions: {
line: {
dataLabels: {
// 開啟數(shù)據(jù)標(biāo)簽
enabled: true
},
// 關(guān)閉鼠標(biāo)跟蹤,對應(yīng)的提示框、點擊事件會失效
enableMouseTracking: false
}
},
series: [{
name: '點擊量',
data:{{ clicknum_list|safe }}
}, {
name: '點贊量',
data: {{ praise_num_list|safe }}
}]
});
</script>
路由
# 點擊量統(tǒng)計
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())
應(yīng)用目錄下創(chuàng)建untils文件夾,并在其下創(chuàng)建function.py文件,用來獲取最近七天日期
# 七天日期 def recent_seven_days():# 通過for 循環(huán)得到天數(shù),如果想得到兩周的時間,只需要把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
頁面效果

總結(jié)
以上所述是小編給大家介紹的django項目用higcharts統(tǒng)計最近七天文章點擊量,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
Python實戰(zhàn)之markdown轉(zhuǎn)pdf(包含公式轉(zhuǎn)換)
由于我們markdown編輯器比較特殊,不是很方便瀏覽,如果轉(zhuǎn)換成pdf的話,就不需要可以的去安裝各種編輯器才可以看了。所以本文將介紹如何通過Python實現(xiàn)md轉(zhuǎn)pdf或者是docx,需要的朋友可以參考一下2021-12-12
PyInstaller如何打包依賴文件至目標(biāo)程序目錄
這篇文章主要介紹了PyInstaller如何打包依賴文件至目標(biāo)程序目錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Tensorflow實現(xiàn)在訓(xùn)練好的模型上進行測試
今天小編就為大家分享一篇Tensorflow實現(xiàn)在訓(xùn)練好的模型上進行測試,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
超好玩的"隔空操物"通過Python?MediaPipe庫實現(xiàn)
這篇文章主要介紹了python+mediapipe+opencv實現(xiàn)手部關(guān)鍵點檢測功能(手勢識別),本文僅僅簡單介紹了mediapipe的使用,而mediapipe提供了大量關(guān)于圖像識別等的方法,需要的朋友可以參考下2022-01-01
tensorflow模型繼續(xù)訓(xùn)練 fineturn實例
今天小編就為大家分享一篇tensorflow模型繼續(xù)訓(xùn)練 fineturn實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01

