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实现将n个点均匀地分布在球面上的方法
Mar 12 Python
对python中大文件的导入与导出方法详解
Dec 28 Python
python 调用有道api接口的方法
Jan 03 Python
python实现年会抽奖程序
Jan 22 Python
详解Python中的各种转义符\n\r\t
Jul 10 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
Python与C/C++的相互调用案例
Mar 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
PHP 数组教程 定义数组
2009/10/23 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
php实现cookie加密的方法
2015/03/10 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
js实现微信分享代码
2020/10/11 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
Python中异常重试的解决方案详解
2017/05/05 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
远程调用的原理
2014/07/05 面试题
农村改厕实施方案
2014/03/22 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
蓬莱阁导游词
2015/02/04 职场文书
Python anaconda安装库命令详解
2021/10/16 Python
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers
详解SQL的窗口函数
2022/04/21 Oracle