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创建和删除目录的方法
Apr 29 Python
Python实现从URL地址提取文件名的方法
May 15 Python
Python实现命令行通讯录实例教程
Aug 18 Python
Python装饰器实现几类验证功能做法实例
May 18 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
Python之列表实现栈的工作功能
Jan 28 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
python爬虫模拟浏览器访问-User-Agent过程解析
Dec 28 Python
pyqt5中动画的使用详解
Apr 01 Python
opencv之颜色过滤只留下图片中的红色区域操作
Jun 05 Python
Python实现照片卡通化
Dec 06 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
实用函数9
2007/11/08 PHP
php字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
php判断当前操作系统类型
2015/10/28 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
javascript 多浏览器 事件大全
2010/03/23 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
Flask数据库迁移简单介绍
2017/10/24 Python
使用python模拟命令行终端的示例
2019/08/13 Python
python语言的优势是什么
2020/06/17 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
《孔子拜师》教学反思
2014/02/24 职场文书
房产转让协议书
2014/04/11 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
学生违反校规检讨书
2014/10/28 职场文书
MySQL系列之三 基础篇
2021/07/02 MySQL
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers