注释在请求速率限制器中意味着什么
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
,并妥善处理。
我正在使用 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
,并妥善处理。