Consider a Flask app using Flask-Limiter with a limit of 5 requests per minute per IP. What is the default behavior when a client sends the 6th request within the same minute?
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, default_limits=["5 per minute"]) @app.route('/') def index(): return "Hello, world!"
Think about HTTP status codes related to rate limiting.
Flask-Limiter returns a 429 status code when the client exceeds the allowed number of requests in the given time window.
You want to limit the route /api/data to 10 requests per hour per user IP. Which code snippet correctly applies this limit using Flask-Limiter?
Check the string format for rate limits in Flask-Limiter.
The correct format is a string like '10 per hour'. Other formats cause errors or are invalid.
Review the code below. Why does the rate limit not work as expected?
from flask import Flask from flask_limiter import Limiter from flask_limiter.util import get_remote_address app = Flask(__name__) limiter = Limiter(key_func=get_remote_address) @app.route('/') def home(): return 'Welcome!' @app.route('/test') @limiter.limit('3 per minute') def test(): return 'Test route'
Think about how Flask-Limiter applies limits globally vs per route.
Without default_limits, only routes decorated with @limiter.limit have limits. The '/' route has no limit, so it is unlimited.
Given this Flask route limited to 5 requests per minute, what is the remaining number of allowed requests after calling it twice from the same IP?
from flask import Flask, jsonify from flask_limiter import Limiter from flask_limiter.util import get_remote_address app = Flask(__name__) limiter = Limiter(app, key_func=get_remote_address, default_limits=["5 per minute"]) @app.route('/limited') @limiter.limit('5 per minute') def limited(): remaining = limiter.current_limit.remaining return jsonify({'remaining': remaining})
Remember the limit is 5 requests per minute total.
After 2 requests, 3 requests remain before hitting the limit of 5.
You want to limit requests per authenticated user, not per IP. Which key function should you use with Flask-Limiter?
Think about how to identify users uniquely beyond IP.
To limit by user, the key function must return a unique identifier per user, such as user ID from session or token.