flask 设置请求次数过多后拒绝请求
时间: 2023-08-15 22:03:12 浏览: 55
您好,为了防止恶意攻击或者意外的访问过多导致服务器压力过大,可以在 Flask 应用程序中设置请求限制。一种简单的方法是使用 Flask-Limiter 插件,它可以设置各种限制,例如每秒最大请求数、每分钟最大请求数等。
具体操作可以按照以下步骤:
1. 安装 Flask-Limiter 插件:
```
pip install Flask-Limiter
```
2. 在 Flask 应用程序中导入 Limiter 并创建一个实例:
```
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
limiter = Limiter(
app,
key_func=get_remote_address,
default_limits=["200 per day", "50 per hour"]
)
```
其中 `get_remote_address` 是获取客户端 IP 地址的函数,`default_limits` 是默认的请求限制设置,可以根据需要进行修改。
3. 在路由函数上使用 `limiter.limit` 装饰器来设置请求限制:
```
@app.route('/api')
@limiter.limit("10 per minute")
def api():
# your code here
```
以上代码表示该路由函数每分钟最多允许 10 次请求。
当达到请求限制时,Flask-Limiter 会返回一个 HTTP 429 Too Many Requests 响应,表示请求过多,请稍后再试。