Pisanie własnego middleware
Podpinanie się do każdego żądania i każdej odpowiedzi
Pisanie własnego middleware to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.
Middleware w jednym zdaniu
Middleware to warstwa opakowująca każde żądanie i każdą odpowiedź, która pozwala uruchomić kod przed widokiem i po jego zwróceniu.
Model cebuli
Wyobraź sobie middleware jako warstwy cebuli otaczające widok. Żądanie przechodzi do wewnątrz przez każdą warstwę, a następnie odpowiedź wraca na zewnątrz.
Nowoczesny styl
Nowoczesne middleware to obiekt wywoływalny, który podczas uruchamiania jednorazowo przyjmuje get_response i zwraca procedurę obsługi wywoływaną przez Django dla każdego żądania.
Minimalne middleware
Fabryka przechowuje get_response, a wewnętrzna funkcja wykonuje kod wokół wywołania. Taka forma obiektu wywoływalnego to wszystko, czego potrzebuje Django.
def simple(get_response):
def handler(request):
# before the view
response = get_response(request)
# after the view
return response
return handlerKod przed widokiem
Wszystko przed get_response uruchamia się podczas obsługi żądania przychodzącego. To idealne miejsce na rejestrowanie, pomiar czasu lub dołączanie danych do żądania.
def handler(request):
request.start = time.time()
return get_response(request)Kod po widoku
Wszystko po get_response uruchamia się podczas obsługi odpowiedzi wychodzącej. Można wtedy odczytać lub zmodyfikować odpowiedź, zanim dotrze do przeglądarki.
response = get_response(request)
response["X-App"] = "demo"
return responseForma oparta na klasie
Middleware można również napisać jako klasę z metodami __init__ i __call__. Odzwierciedla ona formę funkcyjną, ale porządkuje powiązane punkty rozszerzeń.
class Timer:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
return self.get_response(request)Zarejestruj w MIDDLEWARE
Middleware zaczyna działać dopiero po umieszczeniu jego ścieżki kropkowej w ustawieniu MIDDLEWARE w pliku settings.py.
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"myapp.middleware.simple",
]Przerwanie obsługi żądania
Jeśli middleware samo zwróci odpowiedź zamiast wywołać get_response, przerywa łańcuch i widok nie zostaje uruchomiony.
Jedno zadanie dla każdego middleware
Każde middleware powinno koncentrować się na jednym obszarze odpowiedzialności, takim jak pomiar czasu lub sprawdzanie uwierzytelnienia. Małe warstwy łatwiej uporządkować i debugować.
Typowe zastosowania praktyczne
Zespoły używają własnego middleware do rejestrowania żądań, dodawania nagłówków, obsługi lokalizacji i lekkiego sprawdzania uwierzytelnienia w całej witrynie.
Szybkie sprawdzenie
Sprawdź, jak nowoczesne middleware przekazuje obsługę do następnej warstwy.
Podsumowanie: Tworzenie middleware
Utworzył(a) Pan/Pani custom middleware: obiekt wywoływalny przyjmujący get_response, z kodem przed widokiem i po nim, zarejestrowany w ustawieniu MIDDLEWARE. ✅
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Pisanie własnego middleware” jest bezpłatna?
Tak — pełny tekst „Pisanie własnego middleware” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Pisanie własnego middleware”?
Podpinanie się do każdego żądania i każdej odpowiedzi Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Django Academy?
Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Pisanie własnego middleware”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?
Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Sygnały post_save i pre_delete
- Prawidłowe podłączanie odbiorników
- Pisanie własnego middleware
- Kolejność middleware i process_view