Flask-Limiter拡張の基本的な使い方

flask

Flask-LimiterはFlaskアプリケーションに簡単にレートリミットを追加できる拡張機能です。特定の時間内に許可されるリクエストの数を制限することで、サービスへの過負荷を防ぎます。

from flask import Flask, render_template, redirect, url_for, flash, session
import os
from flask import Flask, render_template, redirect, url_for, request, current_app
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address


app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)  
# get_remote_addressではIPを取得できるので、IP毎にアクセス制限を行う設定となる
limiter = Limiter(get_remote_address,app=app,default_limits=["1 per minutes","30 per hour"])


# このページには1分間に5回の制限がかかる
@app.route("/")
@limiter.limit("5 per minutes", key_func=get_remote_address)  # ここでLimiterのデコレータを使用
def index():
    return render_template("index.html")


# このページにはデフォルトの1分間に1回、1時間に30回の制限がかかる
@app.route("/mypage")
def mypage():
    return render_template("mypage.html")


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=80, debug=False)

コメント

タイトルとURLをコピーしました