django-ratelimit è un app Django che fornisce un decoratore di rate-limit vista & nbsp; La limitazione può essere basata su indirizzo IP o di un campo nella richiesta - una GET o POST variabile..
Se il limite di velocità è exceded, o un 403 Forbidden possono essere inviati, o la richiesta possono essere annotate con un attributo limitato, che consente di scattare un'altra azione come l'aggiunta di un captcha per un modulo.
Utilizzo Django Ratelimit
da ratelimit.decorators importazione ratelimit è la cosa più importante che dovete fare. Il decoratoreratelimit fornisce diversi argomenti opzionali con default sensibili (in corsivo).
ip: Se vota-limite, ottenuto per il PI. Vero
blocco: se bloccare la richiesta invece di annotazione. Falso
Metodo: Quale metodo HTTP (s) a rate-limit. Può essere una stringa o una lista. tutto
Campo: Quale campo HTTP (s) da utilizzare per rate-limit. Può essere una stringa o una lista. nessuno
tariffa: Il numero di richieste per unità di tempo consentiti. 5 / m
Esempi:
ratelimit ()
def myview (richiesta):
& Nbsp; # Sarà vero se lo stesso IP rende più di 5 richieste / minuto.
& Nbsp; was_limited = getattr (richiesta, 'limitato', False)
& Nbsp; tornare HttpResponse ()
ratelimit (blocco = True)
def myview (richiesta):
& Nbsp; # Se lo stesso IP fa> 5 reqs / min, tornerà HttpResponseForbidden
& Nbsp; tornare HttpResponse ()
ratelimit (campo = 'username')
login def (richiesta):
& Nbsp; # Se lo stesso nome utente o IP viene utilizzato> 5 volte / min, questo sarà vero.
& Nbsp; # Il valore `username` verranno da GET o POST, determinato dal
& Nbsp; metodo di richiesta #.
& Nbsp; was_limited = getattr (richiesta, 'limitato', False)
& Nbsp; tornare HttpResponse ()
ratelimit (method = 'POST')
login def (richiesta):
& Nbsp; # Utilizzarla solo limita la velocità ai messaggi.
& Nbsp; tornare HttpResponseRedirect ()
ratelimit (campo = ['username', 'other_field'])
login def (richiesta):
& nbsp; i valori dei campi multipli # Usa.
& Nbsp; tornare HttpResponse ()
ratelimit (tasso = '4 / h')
def lento (richiesta):
& Nbsp; # Permettere 4 reqs / ora.
& Nbsp; tornare HttpResponse ()
Requisiti
- Python
- Django
I commenti non trovato