"Django-ratelimit yra Django programa, kuri suteikia dekoratorius įvertinti-ribines nuomonę, & nbsp; ribojimas gali būti grindžiamas IP adreso arba prašyme srityje - arba GET arba POST kintamojo..
Jei norma riba exceded, arba 403 Forbidden gali būti siunčiami, ar prašymas gali būti komentuojami su ribotu atributu, kad būtų galima priimti kitą veiksmą, kaip pridėti CAPTCHA į formą.
Naudojant Django Ratelimit
nuo ratelimit.decorators importo ratelimit yra didžiausias dalykas, kurį reikia padaryti. ratelimit Dekoratorius pateikia keletą papildomus argumentus su protinga nutylėjimą (kursyvu).
IP: Nesvarbu įvertinti ribą remiantis TL. Tiesa
blokas: ar blokuoti prašymą vietoj anotuoti. Netikras
metodas: Kuris HTTP metodas (-ai) įvertinti terminas. Gali būti eilutę ar sąrašą. visi
sritis: Kuris HTTP laukas (-ai) naudoti greičio ribą. Gali būti eilutę ar sąrašą. niekas
Įvertinimas: Prašymų per laiko vienetą leidžiamas skaičius. 5 / m
pavyzdžiai:
ratelimit ()
Def MyView (prašymas):
& Nbsp; # Ar tiesa, jei tą patį IP sudaro daugiau nei 5 prašymus / min.
& Nbsp; was_limited = getAttr (prašymo, "ribotas", false)
& Nbsp; sugrįžti HttpResponse ()
ratelimit (blokas = true)
Def MyView (prašymas):
& Nbsp; # Jei tą patį IP daro> 5 Reqs / min, grįš HttpResponseForbidden
& Nbsp; sugrįžti HttpResponse ()
ratelimit (laukas = 'Nick')
Def Slapyvardis (prašymas):
& Nbsp; # Jei pats vardas arba IP naudojami> 5 kartus / min, tai bus tiesa.
& Nbsp; # `username` vertė ateis iš GET arba POST, nustatomas pagal
& Nbsp; # prašymas metodas.
& Nbsp; was_limited = getAttr (prašymo, "ribotas", false)
& Nbsp; sugrįžti HttpResponse ()
ratelimit (metodas = 'post)
Def Slapyvardis (prašymas):
& Nbsp; # taikoma tik greičio ribojimo prie pranešimų.
& Nbsp; sugrįžti HttpResponseRedirect ()
ratelimit (laukas = ['vardas', 'other_field'])
Def Slapyvardis (prašymas):
& nbsp; # naudoti kelis lauko reikšmės.
& Nbsp; sugrįžti HttpResponse ()
ratelimit (tarifas = '4 / h ")
Def lėtas (prašymas):
& Nbsp; # Leisti 4 Reqs / val.
& Nbsp; sugrįžti HttpResponse ()
Reikalavimai
- Python,
- Django
Komentarai nerastas