Django-ratelimit adalah aplikasi Django yang menyediakan dekorator untuk menilai-batas dilihat & nbsp; Membatasi dapat didasarkan pada alamat IP atau bidang dalam permintaan - baik GET atau POST variabel..
Jika batas rate exceded, baik 403 Forbidden dapat dikirim, atau permintaan dapat dijelaskan dengan atribut yang terbatas, yang memungkinkan Anda untuk mengambil tindakan lain seperti menambahkan captcha untuk formulir.
Menggunakan Django ratelimit
dari ratelimit.decorators impor ratelimit adalah hal terbesar yang perlu Anda lakukan. Theratelimit dekorator menyediakan beberapa argumen opsional dengan default masuk akal (dalam huruf miring).
ip: Apakah akan menilai-batas berdasarkan IP. Benar
blok: Apakah akan memblokir permintaan bukan annotating. Palsu
Metode: Yang Metode HTTP (s) untuk menilai-batas. Mungkin string atau daftar. semua
bidang: Yang lapangan HTTP (s) digunakan untuk tingkat-batas. Mungkin string atau daftar. tak satupun
Tingkat: Jumlah permintaan per satuan waktu diperbolehkan. 5 / m
Contoh:
ratelimit ()
def myview (permintaan):
& Nbsp; # Akan benar jika IP yang sama membuat lebih dari 5 permintaan / menit.
& Nbsp; was_limited = getattr (permintaan, 'terbatas', False)
& Nbsp; kembali HttpResponse ()
ratelimit (block = True)
def myview (permintaan):
& Nbsp; # Jika IP yang sama membuat> 5 pgl / menit, akan kembali HttpResponseForbidden
& Nbsp; kembali HttpResponse ()
ratelimit (field = 'username')
def login (permintaan):
& Nbsp; # Jika username ATAU IP digunakan> 5 kali / menit yang sama, ini akan menjadi Benar.
& Nbsp; # The `nilai username` akan datang dari GET atau POST, ditentukan oleh
& Nbsp; # metode permintaan.
& Nbsp; was_limited = getattr (permintaan, 'terbatas', False)
& Nbsp; kembali HttpResponse ()
ratelimit (metode = 'POST')
def login (permintaan):
& Nbsp; # Hanya berlaku tingkat-membatasi POST.
& Nbsp; kembali HttpResponseRedirect ()
ratelimit (field = ['username', 'other_field'])
def login (permintaan):
& Nbsp; nilai beberapa bidang # Gunakan.
& Nbsp; kembali HttpResponse ()
ratelimit (tingkat = '4 / h')
def lambat (permintaan):
& Nbsp; # Izinkan 4 pgl / jam.
& Nbsp; kembali HttpResponse ()
Persyaratan :
- Python
- Django
Komentar tidak ditemukan