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中二维阵列的变换实例
Oct 09 Python
python传递参数方式小结
Apr 17 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
分享6个隐藏的python功能
Dec 07 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 Python
Python实现的爬取小说爬虫功能示例
Mar 30 Python
python如何制作缩略图
Apr 30 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 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
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
微信小程序事件 bindtap bindinput代码实例
2019/08/26 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
js实现聊天对话框
2020/02/08 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
Python中请使用isinstance()判断变量类型
2014/08/25 Python
编程语言Python的发展史
2014/09/26 Python
浅析Python基础-流程控制
2016/03/18 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
公共事业管理本科生求职信
2013/10/07 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
销售顾问工作计划书
2014/09/15 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
营销与策划实训报告
2014/11/05 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
二审代理词范文
2015/05/25 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
前端JavaScript大管家 package.json
2021/11/02 Javascript