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的Twisted框架编写非阻塞程序的代码示例
May 25 Python
Python中死锁的形成示例及死锁情况的防止
Jun 14 Python
Python中类的初始化特殊方法
Dec 01 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python实现zabbix发送短信脚本
Sep 17 Python
Django之提交表单与前后端交互的方法
Jul 19 Python
Python Django实现layui风格+django分页功能的例子
Aug 29 Python
Python socket非阻塞模块应用示例
Sep 12 Python
基于pandas中expand的作用详解
Dec 17 Python
scrapy处理python爬虫调度详解
Nov 23 Python
Python关于拓扑排序知识点讲解
Jan 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
JS继承用法实例分析
2015/02/05 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
nodejs基础知识
2017/02/03 NodeJs
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
python ChainMap 合并字典的实现步骤
2019/06/11 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
机电一体化毕业生求职信
2013/11/02 职场文书
领导班子四风表现材料
2014/08/23 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
pytorch中的 .view()函数的用法介绍
2022/03/17 Python