gpt4 book ai didi

python - Django : How to count number of people viewed

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:19 24 4
gpt4 key购买 nike

我正在用 Django 制作一个简单的 BBS 应用程序,我想要它以便每当有人看到帖子时,该帖子的观看次数 (post_view_no) 就会增加。

目前,我面临两个困难:

  • 我需要限制 post_view_no 的增加,这样无论用户刷新/点击帖子多少次,一个用户只能增加一次。

  • 我还需要能够跟踪未登录的用户。

关于第一个问题,只要我创建一个名为“View”的模型并检查数据库,这似乎很容易,但我觉得这可能有点矫枉过正。

关于第二个问题,我能想到的就是使用cookies/IP地址来跟踪用户,但IP几乎不是唯一的,我不知道如何使用cookies

我相信这是论坛/bbs 解决方案的一个常见功能,但谷歌搜索只出现了插件或“愚蠢”的解决方案,每次查看帖子时都会增加 View 。

解决此问题的最佳方法是什么?

最佳答案

我认为您可以通过 cookie 来完成这两件事。例如,当用户访问一个页面时,您可以

  1. 检查他们是否在 session 中设置了“viewed_post_%s”(其中 %s 是帖子 ID)键。

  2. 如果有,什么也不做。如果他们不这样做,请将相应 Post 对象的 view_count 数字字段增加一个,并在他们的 session 中设置键(cookie)“viewed_post_%s”(这样以后就不算了)。

这对匿名用户和注册用户都适用,但是通过清除 cookie 或设置浏览器拒绝他们,用户可以玩弄观看次数。

现在在 Django 中使用 cookie( session )非常简单:为当前用户设置一个值,您只需调用类似的东西

request.session['viewed_post_%s' % post.id] = True

在您看来,完成了。 (检查 docs ,尤其是 examples 。)

免责声明:这不是我想出来的,我个人并没有这样做,通常是在需要进行一些页面浏览/事件跟踪时(以便您了解是什么驱动了更多您网站的流量,用户何时更活跃等),那么使用专门的系统(例如,Google Analytics,StatsD)是有必要的。但是对于某些特定的用例,或者作为练习,这应该可行。

关于python - Django : How to count number of people viewed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25179386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com