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笔记(1) 关于我们应不应该继续学习python
Oct 24 Python
Python中的类学习笔记
Sep 23 Python
使用python实现省市三级菜单效果
Jan 20 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
详解python的ORM中Pony用法
Feb 09 Python
Python语言的变量认识及操作方法
Feb 11 Python
python实现将excel文件转化成CSV格式
Mar 22 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
Python 为什么推荐蛇形命名法原因浅析
Jun 18 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
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
JS定义回车事件(实现代码)
2013/07/08 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
python读文件逐行处理的示例代码分享
2013/12/27 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
基于python实现坦克大战游戏
2020/10/27 Python
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
高一新生军训感言
2014/03/02 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
2015年林业工作总结
2015/05/14 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
react antd实现动态增减表单
2021/06/03 Javascript
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL