django-ratelimit là một ứng dụng Django cung cấp một trang trí để đánh giá hạn views & nbsp; Hạn chế có thể được dựa trên địa chỉ IP hoặc một lĩnh vực trong yêu cầu - hoặc là một GET hoặc POST biến..
Nếu giới hạn tốc độ được exceded, hoặc là một 403 Forbidden có thể được gửi đi, hoặc yêu cầu có thể được chú thích bằng một thuộc tính hạn chế, cho phép bạn để có một hành động khác như thêm một captcha mẫu.
Sử dụng Django Ratelimit
từ ratelimit.decorators ratelimit nhập khẩu là điều lớn nhất mà bạn cần phải làm. Các trang tríratelimit cung cấp một số đối số tùy chọn với mặc định hợp lý (in nghiêng).
ip: Cho dù để đánh giá hạn dựa trên IP. Thật
khối: Cho dù để chặn các yêu cầu thay vì ghi chú thích. Sai
Phương pháp: Phương pháp nào HTTP (s) để đánh giá hạn. Có thể là một chuỗi hoặc một danh sách. tất cả
lĩnh vực: Những lĩnh vực HTTP (s) để sử dụng cho tốc độ hạn. Có thể là một chuỗi hoặc một danh sách. không ai
Tỷ lệ: Số lượng yêu cầu mỗi đơn vị thời gian cho phép. 5 / m
Ví dụ:
ratelimit ()
def myview (yêu cầu):
& Nbsp; # Sẽ là đúng nếu cùng một IP làm cho hơn 5 yêu cầu / phút.
& Nbsp; was_limited = getattr (yêu cầu, 'hạn chế', False)
& Nbsp; return HttpResponse ()
ratelimit (khối = True)
def myview (yêu cầu):
& Nbsp; # Nếu IP cùng làm> 5 reqs / phút, sẽ trở lại HttpResponseForbidden
& Nbsp; return HttpResponse ()
ratelimit (field = 'username')
đăng nhập def (yêu cầu):
& Nbsp; # Nếu cùng tên người dùng hoặc IP được sử dụng> 5 lần / phút, đây sẽ là True.
& Nbsp; # Các giá trị `username` sẽ đến từ GET hoặc POST, xác định bởi
& Nbsp; # yêu cầu phương pháp.
& Nbsp; was_limited = getattr (yêu cầu, 'hạn chế', False)
& Nbsp; return HttpResponse ()
ratelimit (method = "POST")
đăng nhập def (yêu cầu):
& Nbsp; # Chỉ áp dụng hạn chế tỷ lệ để POSTS.
& Nbsp; return HttpResponseRedirect ()
ratelimit (field = ['username', 'other_field'])
đăng nhập def (yêu cầu):
& Nbsp; # Sử dụng giá trị nhiều lĩnh vực.
& Nbsp; return HttpResponse ()
ratelimit (rate = '4 / h')
def chậm (theo yêu cầu):
& Nbsp; # Cho phép 4 reqs / giờ.
& Nbsp; return HttpResponse ()
Yêu cầu :
- Python
- Django
Bình luận không