Login
芋圆社区 > 编程 > 社区各功能的实现 > 统计博客系列访问量

统计博客系列访问量

1010
0
2021-06-23
2022-10-13
Hey、小怪兽


前言


  • • 一个博客系列里面包含多篇博客,那么如何统计博客的访问量呢?
  • • 统计博客的访问量很简单,在用户访问这篇博客的时候让访问量字段加一就可以了
  • • 那么博客系列,就是该系列下所有的博客的访问量之和,我这里设置为,你访问了这篇博客,那么这个系列访问量也会+1
blogDetail = blog.objects.get(id=id)
# 更新浏览数
blogDetail.views += 1
blogDetail.list.views += 1
blogDetail.save()
blogDetail.list.save()
  • • blogDetail就是你访问的博客
  • • blogDetail.views就是这个模型下views这个字段+1
  • • blogDetail.list.views就是系列的views
  • • 之后两个save就是数据库的操作,+1后要保存

问题


  • • 如果不考虑大访问量,大量操作数据库操作等问题
  • • 在正常情况下,由于我的views字段是写在blog和blogList模型里的,并没有设置外链拆开
  • • 而且发布文章是在后台发布的,这里就有机会出现博客系列的访问量大于所有博客访问量之和的问题(比如:我想编辑一篇博客,当我进入编辑页面的时候,访问量是100,在我编辑的时候,有50个人访问了我的页面,那访问量就会150,博客系列的访问量也会加50,但是编辑页面的访问量是100,所以当我保存这篇博客的时候,会把博客访问量从150变成100,就少了博客系列总访问量50)

解决办法


  • • 最简单的解决办法就是在数据模型的时候将访问量和博客的数据拆开,这样保存的话,访问量也不会保存
  • • 第二种办法就是定时设置方法,重新统计博客系列的访问量,这样他们数值就会相同,但是这样在编辑的时候访问的数字还是不会被统计
i = 0
listCount = blogList.objects.count()
while i < listCount:
    newViews = blog.objects.filter(list=i+1).aggregate(Sum('views'))
    newViews = newViews.get('views__sum')
    newList = blogList.objects.get(id=i+1)
    newList.views = newViews
    newList.save()
    i += 1
  • • 第三种方法就是在前台页面做一个发布修改博客的页面,然后只修改文章内容,这样也不会动访问量数据

上一篇:统计图表实现(一)

下一篇:银掠武器边框样式

Message Board
回复
回复内容不允许为空
留言字数要大于2,小于200!
提交成功,5s后刷新页面!
编程导航

追番卡片IMG的Hover效果

莉可丽丝 - 回到顶部按钮

追番卡片在手机端难滑动的BUG

留言分页序号功能

小黑屋功能实现

上一篇和下一篇

统计图表实现(二)

统计图表实现(一)

统计博客系列访问量

银掠武器边框样式

Copyright © 2020 芋圆社区

Powered by 浙ICP备2020039309号-1

此页面不支持夜间模式!

已进入夜间模式!

已进入普通模式!

搜索框不允许为空

签到成功!经验+5!芋圆币+2!

签到失败!今日已签到!

需要登录社区账号才可以进入!

复制成功
寄,页面未加载完成或页面无锚点