0

我试图在我的 Django 站点中使用 ratelimit 来限制一段时间内来自一个IP的请求数量。以下是我正在尝试的。

网址.py

url(r'^test/$', 'myapp.views.test', name='myapp.views.test'),

视图.py

@ratelimit(key='ip', rate='5/m')
def test(request):
    return HttpResponse("Request submitted successfully.")

当我试图点击网址时 - http://:8080/test/ 它给了我以下错误。

/test/处的ValueError

未找到密钥 'rl:bbbcf11eb514e3e14d9472f112fc06b0'

请求方法:GET 请求 URL:http://:8080/test/ Django 版本:1.6 异常类型:ValueError 异常值:

未找到密钥 'rl:bbbcf11eb514e3e14d9472f112fc06b0'

我正在尝试使用文档 - http://django-ratelimit.readthedocs.org/en/latest/index.html

在 settings.py 中有一些关于设置RATELIMIT_USE_CACHE的内容,但不确定应该在此设置中设置什么。我对 Django 比较陌生

4

1 回答 1

0

似乎 ratelimit 需要使用Django Cache Framework来存储有关 IP 和请求的信息。

您需要设置某种缓存,最好是 memcached 才能使用它。希望有帮助!

于 2014-11-18T20:11:19.310 回答