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简单判断序列是否为空的方法
Jun 30 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
python开发之str.format()用法实例分析
Feb 22 Python
python方法生成txt标签文件的实例代码
May 10 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
使用python写一个自动浏览文章的脚本实例
Dec 05 Python
python画图常规设置方式
Mar 05 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 Python
python如何变换环境
Jul 21 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 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 无限级 SelectTree 类
2009/05/19 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
超详细的javascript数组方法汇总
2015/11/21 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
办公室保洁员岗位职责
2013/12/02 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
征兵宣传标语
2014/06/20 职场文书
卖房授权委托书样本
2014/10/05 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书