Flask-Limiter详细使用说明

本文首发于:行者AI

速率限制通常作为服务的防御措施予以实施。服务需要保护自身以免过度使用(无论是有意还是无意),从而保持服务可用性。在Flask项目开发过程中,遇到了需要对接口进行限制的需求,又不想去造轮子,这时候就需要用到Flask-Limiter这个三方库。本文将对Flask-Limiter的使用进行详细说明。

1. 安装

安装依赖环境。

pip install Flask==1.1.1 Flask-Limiter==1.4

2. 快速开始

有两种方式表示速率限制:

  • “100 per day”、“20 per hour”、“5 per minute”、“1 per second”
  • “100/day”、“20/hour”、“5/minute”、“1/second”

速率限制可以设置全局配置,针对所有接口进行限制;也可以通过装饰器进行局部限制;对于不想限制的接口,可以通过装饰器@limiter.exempt进行解除限制。示例代码如下所示:

app = Flask(__name__)

# 该配置为全局配置、适用于所有接口
limiter = Limiter(app, key_func=get_remote_address, default_limits=["100 per day", "10/hour"])

# @limiter.limit: 将覆盖全局limiter配置
@app.route("/slow")
@limiter.limit("1 per day")
def slow():
    return ":("

# override_defaults: 表示该limiter是否覆盖全局limiter限制,默认为True
@app.route("/medium")
@limiter.limit("1/second", override_defaults=False)
def medium(
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值