我在我的网站上有几个表单,并且我有几个页面具有强烈的数据库活动。我想为每个用户的请求设置上限。例如,我不希望人们在不到10秒的时间内发出超过10个请求。
有没有办法在Django中这样做?
答案 0 :(得分:3)
您可以使用自定义中间件执行此操作。你需要将数据保存在某个地方(db?)。请参阅文档,了解如何编写own middleware。以下是request object中可以使用的内容。
我建议你在apache / nginx /无论你使用什么时这样做。
答案 1 :(得分:2)
看看西蒙威利森的ratelimitcache。顾名思义,它使用Django的缓存框架来存储速率限制器的状态。还有一个blog post详细说明了速率限制器的工作原理。