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基础教程之基本内置数据类型介绍
Feb 20 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
python儿童学游戏编程知识点总结
Jun 03 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
Python 经典算法100及解析(小结)
Sep 13 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
在TensorFlow中实现矩阵维度扩展
May 22 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目录操作函数之获取目录与文件的类型
2010/12/29 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
深入PHP curl参数的详解
2013/06/17 PHP
php异常处理使用示例
2014/02/25 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
yii添删改查实例
2015/11/16 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
永不消失的title提示代码
2007/02/15 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
基于FME使用Python过程图解
2020/05/13 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
最新大学生创业计划书写作攻略
2014/04/02 职场文书
趣味运动会广播稿
2014/09/13 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server
Go语言grpc和protobuf
2022/04/13 Golang