相关疑难解决方法(0)

在Django增加页面命中数

我有一个带IntegerField(hit_count)的表,当访问一个页面时(例如http://site/page/3),我希望hit_count数据库中的记录ID 3的列增加1.

查询应该像:

update table set hit_count = hit_count + 1 where id = 3
Run Code Online (Sandbox Code Playgroud)

我可以使用标准的Django模型约定吗?或者我应该手动编写查询?

python django django-models

16
推荐指数
1
解决办法
8593
查看次数

计算忽略搜索引擎的页面的视图数量?

我注意到StackOverflow对每个问题都有一个视图计数,并且这些视图编号相当低且准确.

我的一个网站上有类似的东西.每当页面加载到后端代码中时,它基本上都会记录"命中".不幸的是,它也为搜索引擎命中率提供了膨胀和不准确的数字.

我想一种不计算机器人的方法是在页面加载后用AJAX调用进行视图计数,但我确信还有其他更好的方法可以忽略搜索引擎中的搜索引擎,同时仍让它们进入抓取您的网站.你知道任何?

search-engine website-metrics

8
推荐指数
1
解决办法
1350
查看次数

Django的垃圾邮件打击计数器

我已经看过最受欢迎的Django热门计数器解决方案,它们似乎都没有解决垃圾邮件刷新按钮的问题.

我是否真的必须记录每个访问者的IP,以防止他们通过垃圾邮件刷新按钮(或编写一个快速而脏的脚本来为他们​​执行)来人为地提高页面查看次数?

更多信息

现在,您可以使用以下几行Python代码来扩充您的视图计数.哪个太少,你真的不需要编写脚本,你只需将它输入到交互式会话中:

from urllib import urlopen

num_of_times_to_hit_page = 100
url_of_the_page = "http://example.com"

for x in range(num_of_times_to_hit_page):
    urlopen(url_of_the_page)
Run Code Online (Sandbox Code Playgroud)

解决方案我可能会用

对我来说,当你需要在每个页面视图上对数据库进行一堆写操作时,这是一个相当粗糙的情况,但我想它无法帮助.由于一些用户人为地夸大了他们的观看次数,我将实施IP日志记录.并不是说他们是坏人,甚至是糟糕的用户.

看看有关缓存解决问题的答案......我将首先尝试这条路线.将更新结果.

值得一提的是,Stack Overflow似乎正在使用cookie(我无法增加自己的查看次数,但是当我在另一个浏览器中访问该站点时,它会增加.)

我认为这样做的好处太多了,这种"作弊"现在太容易了.

感谢大家的帮助!

django spam-prevention hit-count

3
推荐指数
2
解决办法
2200
查看次数

Django View Counter

在我的views.py中制作视图计数器功能的最佳方法是什么?

我确实在Django文档中找到了F()表达式,但是如何让它工作或者更好的主意呢?

先感谢您

def watch_video(request, slug):

    video = get_object_or_404(Video, slug=slug)

    template = "single_video.html" 

    #if this function will run , + 1 in Video.views ?


    return render(request,template,{"video":video})
Run Code Online (Sandbox Code Playgroud)

我的模特:

class Video(models.Model):

    video_id = models.CharField(max_length=150)
    title = models.CharField(max_length=150)
    slug = AutoSlugField(populate_from="title")
    description = models.TextField(blank=True)
    views = models.PositiveIntegerField(default=0)
    likes = models.PositiveIntegerField(default=0)
    category = models.ForeignKey("VideoCategory")
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    tags = models.ManyToManyField("Tag")


    def __str__(self):

        return self.title

    def get_absolute_url(self):

        return reverse("watch", kwargs={"slug" : self.slug})
Run Code Online (Sandbox Code Playgroud)

python django counter

1
推荐指数
1
解决办法
2640
查看次数