我们在浏览别人的博客的时候会发现有一个叫做阅读量的东西,以我在CSDN的博客为例。
我们可以看到这一篇博客的阅读数为11,那么我们是怎么做到的呢,看下面这段代码
看到readed_num,我们设置初始值为0,代表阅读数一开始为0,这个实在models.py里面设置的,因为这些数据都是会存储到后台的。
通过这样的设置之后,当我们每一次对博客进行点击,博客的阅读数都会加1,但是这样做是不对的。我们需要考虑如果是多次点击的话怎么办。因此我们使用缓存cookie来保存我们的记录。
之后我们看到views.py,也就是负责处理网页的代码,
在进行说明之前,我们应该先知道的是我们第一次点击的时候,服务器会发送cookie给客户端这边并保存到本地,然后下次在进行get请求的时候,将本地的cookie一起提交到服务器上。
因此我们先看倒数第三行
这里会返回一个相应给response
然后通过set_cookie设置cookie,第一个参数是name,第二个参数是value,这样我们就将cookie保存到本地了。
当我们再一次对博客进行点击时,我们按f12查看控制台,进入application,点击cookie进入我们的访问页面,会看到如下情况。
看到蓝色的部分,这就是我们在设置cookie的时候的两个参数,一个是name,一个是value。
所以到这里我们就初步的解决了重复点击但阅读数一直增加的问题。