django项目用higcharts统计最近七天文章点击量


Posted in Python onAugust 17, 2019

下载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: '日点击量和点赞量统计'
 },
 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>

路由

# 点击量统计
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())

应用目录下创建untils文件夹,并在其下创建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统计最近七天文章点击量

总结

以上所述是小编给大家介绍的django项目用higcharts统计最近七天文章点击量,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
Python 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
Python动态加载模块的3种方法
Nov 22 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
Python中Django 后台自定义表单控件
Mar 28 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
对python中基于tcp协议的通信(数据传输)实例讲解
Jul 22 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
pytorch加载自己的图像数据集实例
Jul 07 Python
Django对models里的objects的使用详解
Aug 17 #Python
python3.6中@property装饰器的使用方法示例
Aug 17 #Python
对django的User模型和四种扩展/重写方法小结
Aug 17 #Python
python3.6编写的单元测试示例
Aug 17 #Python
python3 实现的对象与json相互转换操作示例
Aug 17 #Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 #Python
django 通过url实现简单的权限控制的例子
Aug 16 #Python
You might like
法压式咖啡之制作法
2021/03/03 冲泡冲煮
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
JavaScript插入动态样式实现代码
2012/02/22 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
jquery实现Ctrl+Enter提交表单的方法
2015/07/21 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
python中global用法实例分析
2015/04/30 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
HTML5的新特性(1)
2016/03/03 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
小学三年级学生评语
2014/04/22 职场文书
国际贸易系求职信
2014/08/09 职场文书
家属答谢词
2015/01/05 职场文书
论文答谢词
2015/01/20 职场文书
驳回起诉裁定书
2015/05/19 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python