
Sygnały Django
Wbudowane sygnały, pre_save, post_save, pre_delete, niestandardowe sygnały, receivery, najlepsze praktyki dotyczące sygnałów
1Czym jest sygnał w Django?
Czym jest sygnał w Django?
Odpowiedź
Sygnał to mechanizm pozwalający, aby określone części aplikacji były powiadamiane, gdy w innym miejscu frameworka wystąpią konkretne akcje. Sygnały umożliwiają rozdzielenie (decoupling) nadawcy zdarzenia od receiverów, które reagują na to zdarzenie. Django udostępnia kilka wbudowanych sygnałów, takich jak pre_save, post_save, pre_delete i post_delete dla operacji na modelach.
2Który sygnał jest emitowany tuż przed zapisaniem obiektu do bazy danych?
Który sygnał jest emitowany tuż przed zapisaniem obiektu do bazy danych?
Odpowiedź
Sygnał pre_save jest emitowany przed wykonaniem metody save() modelu. Pozwala wprowadzić zmiany w instancji przed jej zapisaniem, na przykład obliczyć wartości pochodne lub znormalizować dane. Ten sygnał jest przydatny, ponieważ jest wywoływany zarówno przy tworzeniu, jak i przy aktualizacji obiektu.
3Którego dekoratora należy użyć, aby połączyć funkcję receiver z sygnałem Django?
Którego dekoratora należy użyć, aby połączyć funkcję receiver z sygnałem Django?
Odpowiedź
Dekorator @receiver z django.dispatch pozwala połączyć funkcję z sygnałem w sposób deklaratywny. Przyjmuje jako parametr sygnał, którego ma nasłuchiwać, oraz opcjonalnie sender do filtrowania nadawców. To podejście jest bardziej czytelne niż metoda connect() i ułatwia utrzymanie kodu.
Który argument sygnału post_save pozwala odróżnić utworzenie od aktualizacji?
Gdzie zaleca się umieszczać kod receiverów sygnałów w aplikacji Django?
+15 pytań z rozmów
Inne tematy rekrutacyjne Django
Podstawy Pythona
Python obiektowy
Podstawy Django
Models Django - Podstawy
Widoki Django
Szablony Django
Formularze Django
Zaawansowane QuerySets
Uwierzytelnianie w Django
Middleware Django
Django Admin
Django REST Framework
Przesyłanie plików
Buforowanie w Django
Sesje Django
Email w Django
Testowanie w Django
Bezpieczeństwo Django
Wdrażanie Django
Zaawansowany Django ORM
Wydajność Django
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django w ekosystemie mikroserwisów
Niestandardowe komendy Django
Internacjonalizacja w Django
Wzorce projektowe w Django
Django Async i ASGI
Settings i konfiguracja produkcyjna
Observability i monitoring
Opanuj Django na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo