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 相关文章推荐
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 Python
python pandas修改列属性的方法详解
Jun 09 Python
对python GUI实现完美进度条的示例详解
Dec 13 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
选择Python写网络爬虫的优势和理由
Jul 07 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
May 20 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
pytorch 多分类问题,计算百分比操作
Jul 09 Python
python 多线程中join()的作用
Oct 29 Python
Matplotlib animation模块实现动态图
Feb 25 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 24 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
最小化数据传输――在客户端存储数据
2006/10/09 PHP
php 中文和编码判断代码
2010/05/16 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python中遍历文件的3个方法
2014/09/02 Python
python读取Excel实例详解
2018/08/17 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
Python可以用来做什么
2020/11/23 Python
selenium如何定位span元素的实现
2021/01/13 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
预备党员个人总结
2015/02/14 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python