【Django2.0学习笔记】18.博客阅读简单计数

18、博客阅读简单计数

1、简单计数处理

  • 1、Blog模型添加数字字段记录
  • 2、每次有人打开,记录数+1
    在这里插入图片描述

在blog/model.py的Blog类里面新增一个字段read_num,修改models.py如下:
在这里插入图片描述

同步修改admin.py如下:
在这里插入图片描述

同步迁移数据库,启动,访问后台页面:
在这里插入图片描述

然后修改views.py里的blog_detail如下:
在这里插入图片描述

然后我们点击浏览博客30的详情页面,再回到后台页面刷新,可以看到博客30的read_num增加了1
在这里插入图片描述

接下来我们把阅读量信息加到博客详情页面中显示
修改blog_detail.html
在这里插入图片描述
在这里插入图片描述

接着,我们让博客列表页面也显示阅读量
修改blog_list.html如下:
在这里插入图片描述
在这里插入图片描述

有一个问题,在某篇博客的详情页面,我刷新一下,阅读量就增加1了,也就是说,只要我一请求,不管是什么状态,它都加1,这就涉及到我们需要定义下,在什么情况下设定为一次阅读

2、自定义计数规则

可规定,怎么才算阅读1次

  • 1)无论是否同一个人,每次打开都记录
  • 2)若同一个人,每隔多久才算阅读1次
    在这里插入图片描述

当然,如果是用户的话,这个问题很简单,我们只要是登录用户,把这个用户信息记录起来,那如果是一个没有登录的访客进行访问呢,这个访客要怎么算,怎样才算一次阅读,那么这里最好有一个东西能够帮我们标记一个状态,就是这个用户大概什么时候阅读了,那我们就可以根据这个状态去判断它是不是算作为同一次阅读的标准去衡量。但我们做一个网站,通常是认为它是一个服务器或者是多个服务器,是一个整体,那用户有很多,我们也不知道是谁访问,该怎样去控制呢?这就涉及到一个东西,叫cookie,这个东西是浏览器可以保存一定的数据到电脑端这边,然后我们每次发送请求,浏览器就会把全部 cookie 信息提交给服务器,服务器就可以读取这个保存的信息,我们就可以根据这里面的数据去做一些处理,包括一些我们的登录状态也是通过 cookie 处理的。那这里我们就用 cookie 保存阅读信息到本地这种方法来实现。
那设置 cookie 信息就有两个步骤:1、服务器把这个 cookie 信息跟浏览器说在这台电脑记录下他访问过这篇文章,这个信息设置到本地电脑后,每次提交,它才会把这个数据提交给服务器,服务器才会去读.

设置 cookie 的页面
在这里插入图片描述
修改views.py
在这里插入图片描述
再刷新页面
在这里插入图片描述
然后我们判断加载之前有没有这个cookie,修改views.py如下:
在这里插入图片描述
这里我们要做一个测试,验证刚刚两个参数都不添加的效果:
在不关闭浏览器,只关闭标签时,它的cookie是有效的,访问不计数。一旦关闭浏览器,cookie才失效,访问会计数。

3、该计数方法的缺点

  • 1、后台编辑博客可能影响数据
  • 2、功能单一,无法统计某一天的阅读数
    在这里插入图片描述

这里有两个问题
第一个问题,当在后台修改的过程当中,如果此时刚好有人访问了博客,那就是说,在后台改动的时候,read_num就会变化,但我们后台改完之后保存,read_num是以之前的数量进行保存的。
第二个问题,我们只能看这篇文章具体有多少阅读量,没有办法统计每天的阅读量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值