跳转到主要内容

为Quart提供速率限制支持的扩展

项目描述

Build Status docs pypi python license

Quart-Rate-Limiter是一个为Quart提供的扩展,允许为每个路由定义和执行速率限制。429错误响应包括符合RFC7231Retry-After标题,并且成功的响应包含符合HTTP速率限制标题字段的RFC草案标题。

快速入门

要添加速率限制,首先使用应用程序初始化RateLimiting扩展,然后为路由设置速率限制,

app = Quart(__name__)
rate_limiter = RateLimiter(app)

@app.get('/')
@rate_limit(1, timedelta(seconds=10))
async def handler():
    ...

简单示例

要将路由限制为每秒1个请求和每分钟最多20个请求,

@app.route('/')
@rate_limit(1, timedelta(seconds=1))
@rate_limit(20, timedelta(minutes=1))
async def handler():
    ...

或者可以使用limits参数为多个限制使用,

@app.route('/')
@rate_limit(
    limits=[
        RateLimit(1, timedelta(seconds=1)),
        RateLimit(20, timedelta(minutes=1)),
    ],
)
async def handler():
    ...

要根据用户的认证ID而不是IP地址识别远程用户,

async def key_function():
    return current_user.id

RateLimiter(app, key_function=key_function)

key_function是一个协程函数,允许适当的会话查找。

贡献

Quart-Rate-Limiter 是在 GitHub 上开发的。非常欢迎您提出 问题合并请求

测试

使用 Tox 测试 Quart-Rate-Limiter 是最佳方式,

$ pip install tox
$ tox

这将检查代码风格并运行测试。

帮助

Quart-Rate-Limiter 的 文档 是开始的好地方,之后尝试在 Stack Overflow 上搜索或 在 Gitter 上寻求帮助。如果您仍然找不到答案,请 打开一个问题

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

quart_rate_limiter-0.10.0.tar.gz (7.1 kB 查看哈希)

上传

构建分布

quart_rate_limiter-0.10.0-py3-none-any.whl (8.0 kB 查看哈希)

上传 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面