This guide assumes you have successfully installed Flask-RateLimiter and a working understanding of Flask. If not, follow the installation steps and read about Flask at http://flask.pocoo.org/docs/.
A minimal Flask-RateLimiter usage example looks like this. First create the application and initialize the extension:
>>> from flask import Flask
>>> from flask_ratelimiter import RateLimiter
>>> app = Flask('myapp')
>>> ext = RateLimiter(app=app)
>>> CHANGEME
# -*- coding: utf-8 -*-
##
## This file is part of Flask-RateLimiter
## Copyright (C) 2014 CERN.
##
## Flask-RateLimiter is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License as
## published by the Free Software Foundation; either version 2 of the
## License, or (at your option) any later version.
##
## Flask-RateLimiter is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
## General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with Flask-RateLimiter; if not, write to the Free Software Foundation,
## Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
##
## In applying this licence, CERN does not waive the privileges and immunities
## granted to it by virtue of its status as an Intergovernmental Organization
## or submit itself to any jurisdiction.
import sys
if sys.version_info < (2, 7):
import functools
import nose
from unittest2 import TestCase
def skipUnless(condition, msg):
def decorated(test):
@functools.wraps(test)
def decorator(*args, **kwargs):
if condition:
return test(*args, **kwargs)
raise nose.SkipTest(msg)
return decorator
return decorated
else:
from unittest import TestCase, skipUnless
from flask import Flask
class FlaskTestCase(TestCase):
"""
Mix-in class for creating the Flask application
"""
def setUp(self):
app = Flask(__name__)
app.config['DEBUG'] = True
app.config['TESTING'] = True
app.logger.disabled = True
self.app = app
__all__ = ['FlaskTestCase', 'skipUnless']