Перший: Структура шляху
Якщо у вас його немає, вам потрібно створити папку проміжного програм у вашому додатку, дотримуючись структури:
yourproject/yourapp/middleware
Проміжне програмне забезпечення папки слід розміщувати в тій самій папці, що і settings.py, URL-адреси, шаблони ...
Важливо: Не забудьте створити порожній файл __init__.py всередині папки проміжного програмного забезпечення, щоб ваш додаток розпізнав цю папку
Друге: Створіть проміжне програмне забезпечення
Тепер нам слід створити файл для власного проміжного програмного забезпечення; у цьому прикладі припустимо, ми хочемо проміжне програмне забезпечення, яке фільтрує користувачів на основі їх IP-адреси, ми створюємо файл з назвою filter_ip_middleware.py всередині папки проміжного програмного забезпечення з таким кодом:
class FilterIPMiddleware(object):
def process_request(self, request):
allowed_ips = ['192.168.1.1', '123.123.123.123', etc...]
ip = request.META.get('REMOTE_ADDR')
if ip not in allowed_ips:
raise Http403
return None
По-третє: додайте проміжне програмне забезпечення в нашій 'settings.py'
Нам потрібно шукати:
MIDDLEWARE_CLASSES
(django <1,10)
MIDDLEWARE
(django> = 1,10)
Всередині settings.py і там нам потрібно додати наше проміжне програмне забезпечення ( додайте його в останню позицію ). Це має бути як:
MIDDLEWARE = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'yourapp.middleware.filter_ip_middleware.FilterIPMiddleware'
)
Готово! Тепер кожен запит кожного клієнта буде викликати власне проміжне програмне забезпечення та обробляти власний код!