注释对请求率限制器意味着什么

时间:2015-09-16 12:00:26

标签: django rate-limiting

我使用Django Ratelimit来限制IP可以调用我的视图的速率。

但我不知道参数block的含义,documented here

当我将其设置为True时,超过我的速率限制时会得到403.

但我不明白当它设置为False时会发生什么。医生说:

block – False Whether to block the request instead of annotating.

我的问题是:"注释"在这种情况下意味着。

1 个答案:

答案 0 :(得分:2)

正如您所说,装饰者在Ratelimited时会引发block=True例外。这将向用户返回403 Permission Denied响应。

如果block=False,则不会引发异常。但是,已在请求对象上设置了布尔limited。在您看来,您可以查看此注释'使用getattr,然后随意处理。

was_limited = getattr(request, 'limited', False):
if was_limited:
    return HttpResponse("You have been rate limited")

因此,如果您使用block=False,则由您自行检查值request.limited,并正确处理。