在Django中访问图像时更新命中计数器

在Django中访问图像时更新命中计数器,django,django-middleware,Django,Django Middleware,我正在DjangoWebsite(v1.4.1)上做一些简单的分析。鉴于几乎每个服务器请求都会收集这些数据,我认为正确的方法是使用一个定制中间件 网站的一个重要指标是访问给定图像的频率。因为每个图像都是它自己的对象,所以我考虑过使用它,但我认为这对于我试图做的事情来说是不必要的。如果它被证明更容易,我可能会使用它 我目前面临的难题是,我不想查询数据库并为发生的每个HttpRequest查找给定的对象。相反,我希望等待成功的响应(由HttpResponse.status 200或其他指示),然后查

我正在DjangoWebsite(v1.4.1)上做一些简单的分析。鉴于几乎每个服务器请求都会收集这些数据,我认为正确的方法是使用一个定制中间件

网站的一个重要指标是访问给定图像的频率。因为每个图像都是它自己的对象,所以我考虑过使用它,但我认为这对于我试图做的事情来说是不必要的。如果它被证明更容易,我可能会使用它

我目前面临的难题是,我不想查询数据库并为发生的每个HttpRequest查找给定的对象。相反,我希望等待成功的响应(由HttpResponse.status 200或其他指示),然后查询服务器并更新相应映像的命中字段。原因是访问映像路径的唯一方法是进程\请求,而访问状态代码的唯一方法是进程\响应

那么,我该怎么办?它是否像创建一个类变量那样简单,该类变量可以保存路径,然后在返回响应代码200后查找文件,还是我应该只使用django hitcount


感谢您的帮助

设置一个cron任务,定期解析Apache/Nginx/任何访问日志,也许可以使用类似的方法。

您可以使用memcache存储计数器,然后定期将它们保存到数据库中。memcache可能会在值被持久化之前将其逐出,但这是您可以接受的

本文提供了更多信息,并重点介绍了使用托管memcache并将密钥分布在多台服务器上时出现的风险