Django throttling

Как-то раз пришлось использовать чужое django-app, в котором было много форм, методов и всего остального. И, что само собой разумеется, автор решил не заморачиваться и не делать никакой защиты от спамеров, или от любителей понажимать F5 на тяжелой форме. Переписывать и форкать у меня желания не было, поэтому решил написать middleware, режущий кислород нехорошим людям.Функционалmaintenance режим, позволяет выключать view в целом, или отдельные http методы глобальные fallback-таймауты сайта, для PATCH, POST и т.д. локальные таймауты для view в целом, или для отдельных http-методов Проще показать пример конфига: DJANGO_THROTTLING = { 'all': 1000, 'post': 'callable: helpers.trash.my_callback', 'congestion': 'forum.views.congestion',

'django.contrib.admin.options.change_view': { 'post': False, 'all': None, 'uri': '/admin/forum/post/23/', }, } Остальные примеры с описаниеми под катом.Читать дальше →

© Habrahabr.ru