Django-ratelimit je aplikace, Django, který poskytuje dekoratér hodnotit-limit výhled & nbsp; Omezení může být založen na IP adresy, nebo pole v žádosti - buď GET nebo POST proměnné..
Pokud je limitní sazba exceded, buď 403 Forbidden mohou být zaslány, nebo může být žádost komentovaný s omezenou atributem, což vám umožní vzít další kroky jako přidání captcha do formuláře.
Používání Django Ratelimit
od ratelimit.decorators import ratelimit je největší věc, kterou musíte udělat. ratelimit Dekoratér nabízí několik volitelných argumentů s rozumnými nesplácení (kurzívou).
ip: Zda hodnotit limit na základě šetření. Pravdivý
blok: Zda zablokovat žádosti namísto anotací. Falešný
Metoda: Které HTTP metoda (y) hodnotit-limit. Může být řetězec nebo seznam. vše
Pole: Které HTTP pole (y) použít k rychlosti-limit. Může být řetězec nebo seznam. nikdo
Rychlost: počet žádostí za jednotku času povoleny. 5 / m
Příklady:
ratelimit ()
def MyView (žádost):
& Nbsp; # Bude pravda, pokud stejné IP činí více než 5 žádostí / min.
& Nbsp; was_limited = getattr (žádost, "omezený", False)
& Nbsp; návrat HttpResponse ()
ratelimit (blok = True)
def MyView (žádost):
& Nbsp; # Je-li stejná IP činí> 5 reqs / min, se vrátí HttpResponseForbidden
& Nbsp; návrat HttpResponse ()
ratelimit (pole = 'username')
def login (žádost):
& Nbsp; # Je-li stejné uživatelské jméno nebo IP se používá> 5x / min, to bude pravda.
& Nbsp; # `username` hodnota bude pocházet z GET nebo POST, určuje
& Nbsp; # metoda požadavku.
& Nbsp; was_limited = getattr (žádost, "omezený", False)
& Nbsp; návrat HttpResponse ()
ratelimit (metoda = "POST")
def login (žádost):
& Nbsp; # platí pouze omezující rychlost na příspěvky.
& Nbsp; návrat HttpResponseRedirect ()
ratelimit (field = ['username', 'other_field'])
def login (žádost):
& nbsp; # Využití hodnoty vícenásobné pole.
& Nbsp; návrat HttpResponse ()
ratelimit (sazba = '4 / h')
def pomalý (žádost):
& Nbsp; # Umožnit 4 reqs / hodinu.
& Nbsp; návrat HttpResponse ()
Požadavky na :
- Python
- Django
Komentáře nebyl nalezen