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类定义的讲解
Nov 01 Python
Python找出文件中使用率最高的汉字实例详解
Jun 03 Python
Python解析最简单的验证码
Jan 07 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
Apr 29 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
python如何通过twisted搭建socket服务
Feb 03 Python
Django Auth用户认证组件实现代码
Oct 13 Python
python 中关于pycharm选择运行环境的问题
Oct 31 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 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
PHP中file_get_contents高?用法实例
2014/09/24 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
配置eslint规范项目代码风格
2019/03/11 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
python dict如何定义
2020/09/02 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
校庆标语集锦
2014/06/25 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
统计工作个人总结
2015/03/03 职场文书
今日说法观后感
2015/06/08 职场文书
2016年国陪研修感言
2015/11/18 职场文书
Redis分布式锁的7种实现
2022/04/01 Redis