2019/03/27 Diary
- flask_limiter : アクセス制限をかける
Flaskとbackoff library
import backoff
import logging
logging.getLogger('backoff').addHandler(logging.StreamHandler())
logging.getLogger('backoff').setLevel(logging.DEBUG)
@backoff.on_exception(backoff.expo, requests.exceptions.RequestException)
def sample():
r = requests.get("http://localhost:5000")
r.raise_for_status()
return r.text
from flask import Flask
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
app = Flask(__name__)
limiter = Limiter(
app,
key_func=get_remote_address,
global_limits=['100 per day', '10 per hour']
)
@app.route('/')
@limiter.limit('5/minute')
def root():
return '1分に5回しかアクセス出来ないぞ'
def main():
app.run()
if __name__ == '__main__':
main()