skip to navigation
skip to content

Not Logged In

Flask-Limiter 0.2

Rate limiting for flask applications

Latest Version: 0.3.1

Flask-Limiter

travis-ci coveralls pypi

Flask-Limiter provides rate limiting features to flask routes. It has support for a configurable backend for storage with current implementations for in-memory, redis and memcache.

Quickstart

Add the rate limiter to your flask app. The following example uses the default in memory implementation for storage.

from flask import Flask
from flask_limiter import Limiter

app = Flask(__name__)
limiter = Limiter(app, global_limits=["2 per minute", "1 per second"])

@app.route("/slow")
@limiter.limit("1 per day")
def slow():
    return "24"

@app.route("/fast")
def fast():
    return "42"

app.run()

Test it out. The fast endpoint respects the global rate limit while the slow endpoint uses the decorated one.

$ curl localhost:5000/fast
42
$ curl localhost:5000/fast
42
$ curl localhost:5000/fast
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>429 Too Many Requests</title>
<h1>Too Many Requests</h1>
<p>2 per 1 minute</p>
$ curl localhost:5000/slow
24
$ curl localhost:5000/slow
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>429 Too Many Requests</title>
<h1>Too Many Requests</h1>
<p>1 per 1 day</p>

Read the docs

History

0.2 2014-02-15

  • Implemented configurable strategies for rate limiting.
  • Bug fixes
    • better locking for in-memory storage
    • multi threading support for memcached storage

0.1.1 2014-02-14

  • Bug fixes
    • fix initializing the extension without an app
    • don't rate limit static files

0.1.0 2014-02-13

  • first release.
 
File Type Py Version Uploaded on Size
Flask-Limiter-0.2.tar.gz (md5) Source 2014-02-15 65KB
Flask_Limiter-0.2-py2.7.egg (md5) Python Egg 2.7 2014-02-15 36KB
  • Downloads (All Versions):
  • 33 downloads in the last day
  • 353 downloads in the last week
  • 1593 downloads in the last month