django-ratelimit ay isang Django app na nagbibigay ng isang dekorador upang i-rate-limit views & nbsp; takda ay maaaring batay sa IP address o isang patlang sa kahilingan - alinman sa isang GET o POST variable..
Kung ang mga limitasyon ng rate ay exceded, alinman sa isang 403 Ipinagbabawal maaaring maipadala, o ang kahilingan ay maaaring annotation sa isang limitadong attribute, na nagpapahintulot sa iyo na kumuha ng isa pang aksyon tulad ng pagdadagdag ng isang captcha sa isang form.
Ang paggamit ng Django Ratelimit
mula ratelimit.decorators import ratelimit ay ang pinakamalaking bagay na kailangan mong gawin. Angratelimit decorator ay nagbibigay ng ilang mga opsyonal na argumento sa makatwirang default (sa italics).
ip: Kung ire-rate-limit batay sa IP. Totoo
block: Kung upang harangan ang mga kahilingan sa halip ng annotating. Huwad
paraan: Aling (mga) paraan ng HTTP upang i-rate-limit. Maaaring isang string o isang listahan. lahat
parang: Aling (mga) HTTP field na gamitin upang rate-limit. Maaaring isang string o isang listahan. wala
rate: Ang bilang ng mga kahilingan sa bawat yunit ng oras na pinahihintulutan. 5 / m
Mga halimbawa:
ratelimit ()
def MyView (request):
& Nbsp; # ba ay totoo kung ang parehong IP gumagawa ng higit sa 5 mga kahilingan / minuto.
& Nbsp; was_limited = getattr (kahilingan, 'limitadong', Mali)
& Nbsp; bumalik HttpResponse ()
ratelimit (block = True)
def MyView (request):
& Nbsp; # Kung ang parehong IP gumagawa> 5 reqs / min, babalik HttpResponseForbidden
& Nbsp; bumalik HttpResponse ()
ratelimit (patlang = 'username')
def login (request):
& Nbsp; # Kung ang parehong username OR IP ay ginagamit> 5 beses / min, ito ay Tama.
& Nbsp; # Ang `halaga username` ay nanggaling mula sa GET o POST, natutukoy sa pamamagitan ng
& Nbsp; # method kahilingan.
& Nbsp; was_limited = getattr (kahilingan, 'limitadong', Mali)
& Nbsp; bumalik HttpResponse ()
ratelimit (paraan = 'POST')
def login (request):
& Nbsp; rate-nililimitahan sa posts # ilapat lamang.
& Nbsp; bumalik HttpResponseRedirect ()
ratelimit (patlang = ['username', 'other_field'])
def login (request):
& Nbsp; # I values maramihang field.
& Nbsp; bumalik HttpResponse ()
ratelimit (rate = '4 / h')
def mabagal (request):
& Nbsp; # Payagan 4 reqs / hour.
& Nbsp; bumalik HttpResponse ()
Kinakailangan :
- sawa
- Django
Mga Komento hindi natagpuan