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使用datetime模块计算各种时间间隔的方法
Mar 24 Python
python比较2个xml内容的方法
May 11 Python
Python多线程下载文件的方法
Jul 10 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
Python语言描述机器学习之Logistic回归算法
Dec 21 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
解决Python中回文数和质数的问题
Nov 24 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
python导入库的具体方法
Jun 18 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
Jun 30 Python
python 实现socket服务端并发的四种方式
Dec 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+MSSQL分页的例子
2006/10/09 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
一个PHP数组应该有多大的分析
2009/07/30 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
javascript如何实现create方法
2019/11/04 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
JS实现简易日历效果
2021/01/25 Javascript
CentOS安装pillow报错的解决方法
2016/01/27 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
python list转矩阵的实例讲解
2018/08/04 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
2015年春节标语口号
2014/12/09 职场文书
离婚起诉书范文2015
2015/05/19 职场文书