注释在请求速率限制器中意味着什么

What does annotate mean at a request rate limiter

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

但是不知道参数block是什么意思,documented here.

当我将其设置为 True 时,如果超过我的速率限制,我会收到 403。

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

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

我的问题是:"annotate" 在这种情况下是什么意思。

如您所说,装饰器在 block=True 时引发 Ratelimited 异常。 returns 403 Permission Denied 响应给用户。

如果block=False,则不会引发异常。但是,已在请求对象上设置布尔值 limited。在您看来,您可以使用 getattr 检查此 'annotation',并按您喜欢的方式处理它。

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

因此,如果您使用block=False,则由您检查值request.limited,并妥善处理。