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实现自动登录人人网并访问最近来访者实例
Sep 26 Python
Python正则表达式实现截取成对括号的方法
Jan 06 Python
python利用pandas将excel文件转换为txt文件的方法
Oct 23 Python
python读取xlsx的方法
Dec 25 Python
Python发展史及网络爬虫
Jun 19 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
python实现人机五子棋
Mar 25 Python
python异常处理之try finally不报错的原因
May 18 Python
Python读取yaml文件的详细教程
Jul 21 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 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/11/16 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
PHP提取中文首字母
2008/04/09 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
php实现微信支付之现金红包
2018/05/30 PHP
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
原生js实现trigger方法示例代码
2019/05/22 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python安装教程
2018/02/28 Python
详解python实现线程安全的单例模式
2018/03/05 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
学习标兵获奖感言
2014/02/20 职场文书
广告词串烧
2014/03/19 职场文书
竞选学委演讲稿
2014/09/13 职场文书
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android