Flask Academy · Lezione

Limitare le richieste con Flask-Limiter

Applichi limiti di frequenza per singola route o globali.

Lezione 1 di 413 passaggi

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-Limiter

Identifichi 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_address

Crei 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!

Gratis per iniziare

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

  1. Limitare le richieste con Flask-Limiter
  2. Configurare CORS per i client browser
  3. Header di sicurezza e HTTPS
  4. Validare l'input per bloccare le injection
← Torna a Flask Academy