Limitare le richieste con Flask-Limiter
Applichi limiti di frequenza per singola route o globali.
Limitare le richieste con Flask-Limiter è una lezione Flask Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Flask Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Flask Academy include 4 lezioni in totale.
Perché applicare un limite
Senza limiti, un client può inondare la Sua API e impedire l'accesso a tutti gli altri. Il rate limiting limita la frequenza con cui un chiamante può raggiungere le Sue route.
Conosciamo Flask-Limiter
Lo strumento più utilizzato è l'estensione Flask-Limiter. Controlla le richieste in arrivo e rifiuta i chiamanti che superano la loro quota.
Lo installi
Lo aggiunge come qualsiasi altra estensione, usando pip. Un solo pacchetto fornisce decoratori e configurazione per limitare il traffico.
pip install Flask-LimiterIdentifichi il chiamante
Un limiter ha bisogno di una chiave in base alla quale effettuare il conteggio. La scelta consueta è l'indirizzo IP del client, tramite l'helper integrato get_remote_address.
from flask_limiter.util import get_remote_addressCrei il limiter
Crei un Limiter e lo colleghi alla Sua app. La funzione per la chiave stabilisce a chi attribuire ogni richiesta.
limiter = Limiter(get_remote_address, app=app)Imposti un limite predefinito
Un elenco default_limits applica contemporaneamente un limite a ogni route. È la Sua rete di sicurezza per l'intera app.
limiter = Limiter(get_remote_address, app=app,
default_limits=["200 per day", "50 per hour"])Limiti per singola route
Renda più restrittivo un singolo endpoint con il decoratore @limiter.limit. Questa route avrà una regola più severa dedicata.
@app.route("/login")
@limiter.limit("5 per minute")
def login():
...Leggere la stringa del limite
La stringa si legge come una frase in linguaggio naturale. 5 per minute significa che un chiamante può raggiungere quella route cinque volte al minuto.
"5 per minute"Cosa significa 429
Quando un chiamante supera il limite, Flask-Limiter restituisce 429 Too Many Requests. È un modo cortese per dire di rallentare.
Escluda una route
Alcuni endpoint, come un controllo dello stato, non dovrebbero mai essere limitati. Li contrassegni con @limiter.exempt per escluderli da tutti i limiti.
@app.route("/health")
@limiter.exempt
def health():
return "ok"Usi un backend condiviso
In produzione esegue molti processi dell'app, quindi i conteggi devono risiedere in uno storage_uri condiviso, come Redis, non in memoria.
Limiter(get_remote_address, app=app,
storage_uri="redis://localhost:6379")Verifica rapida
Scelga il codice di stato che riceve un client sottoposto a limitazione.
Riepilogo
Ha aggiunto Flask-Limiter, impostato i limiti in base all'IP, definito limiti predefiniti e per route, escluso i controlli dello stato e imparato a gestire la risposta 429. Ottimo lavoro!
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Limitare le richieste con Flask-Limiter» è gratuita?
Sì — il testo completo di «Limitare le richieste con Flask-Limiter» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Flask Academy, passa a CoddyKit PRO. Il corso Flask Academy include 4 lezioni in totale.
Cosa imparerò in «Limitare le richieste con Flask-Limiter»?
Applichi limiti di frequenza per singola route o globali. Eserciti Flask Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Flask Academy?
Non è richiesta alcuna esperienza precedente. Flask Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Limitare le richieste con Flask-Limiter»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Flask Academy?
Sì. Ogni lezione Flask Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Limitare le richieste con Flask-Limiter
- Configurare CORS per i client browser
- Header di sicurezza e HTTPS
- Validare l'input per bloccare le injection