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使用ntplib库同步校准当地时间的方法
Jul 02 Python
python机器学习理论与实战(四)逻辑回归
Jan 19 Python
举例讲解Python常用模块
Mar 08 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
python几种常用功能实现代码实例
Dec 25 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
python实现3D地图可视化
Mar 25 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
Python新手学习装饰器
Jun 04 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 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中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
javascript静态的url如何传递
2007/05/03 Javascript
Javascript调用C#代码
2011/01/17 Javascript
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
python中去空格函数的用法
2014/08/21 Python
Python中对列表排序实例
2015/01/04 Python
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
学习十八届三中全会精神实施方案
2014/02/17 职场文书
预防传染病方案
2014/06/14 职场文书
道路施工安全责任书
2014/07/24 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
销售经理工作检讨书
2015/02/19 职场文书
开学第一周总结
2015/07/16 职场文书
七一慰问简报
2015/07/20 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang