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 相关文章推荐
zbar解码二维码和条形码示例
Feb 07 Python
Python使用dis模块把Python反编译为字节码的用法详解
Jun 14 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
PyQt5 pyqt多线程操作入门
May 05 Python
Python3几个常见问题的处理方法
Feb 26 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
python如何实现复制目录到指定目录
Feb 13 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
python的help函数如何使用
Jun 11 Python
Python实现粒子群算法的示例
Feb 14 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数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php实现分页显示
2015/11/03 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
[01:44]Ti10举办地公布
2019/08/25 DOTA
Python 文件重命名工具代码
2009/07/26 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
餐饮业员工工作决心书
2014/03/11 职场文书
一年级学生期末评语
2014/04/21 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL