Python. Django. Тест лимита обращений к странице
Тестирую код, задача которого установить лимит на число обращений к серверу от одного ip. Предпологается, что сервер будет выводить некое сообщение в том случае, если число обращений будет превышено.
views.py
from django.shortcuts import render
from ratelimit.decorators import ratelimit
def get_client_ip(req):
"""
This is used to get the user's IP from the request object.
"""
x_forwarded_for = req.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = req.META.get('REMOTE_ADDR', "unknown")
return ip
@ratelimit(key='ip', rate='2/m')
def block(request):
return render(request, 'index.html', context={
'ip': 'BLOCK!!!',
})
@ratelimit(key='ip', rate='2/m')
def index(request):
ip = get_client_ip(request)
return render(request, 'index.html', context={
'ip': ip,
})
index.html
<h1>IP: {{ ip }}</h1>