为Quart提供速率限制支持的扩展
项目描述
Quart-Rate-Limiter是一个为Quart提供的扩展,允许为每个路由定义和执行速率限制。429错误响应包括符合RFC7231的Retry-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 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 87e538e50b4a0e8c3fc2d72e0c7bd4f0de193f041d70e9deb18128730e9a3e5b |
|
MD5 | efb5c7258515b5c7c9fede701e202b82 |
|
BLAKE2b-256 | 81d9c6e98db7fdf9ff31ecd8da889a58ece0d214cb12ee1b41751b751b3201e2 |
关闭
quart_rate_limiter-0.10.0-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dcc9b429b856550744dd014f6f02f6d9e6b01b39b1a2092bec2fc4bbd408f902 |
|
MD5 | 10a11719e5ac045e8ef38303db76a1cc |
|
BLAKE2b-256 | f141310850a9e1940f8c014602647d929985eb88a09f15fffabef021f81a06b1 |