Django

Django-Signale

Integrierte Signale, pre_save, post_save, pre_delete, benutzerdefinierte Signale, Receiver, Best Practices für Signale

18 Interview-Fragen·
Mid-Level
1

Was ist ein Signal in Django?

Antwort

Ein Signal ist ein Mechanismus, der es bestimmten Teilen der Anwendung ermöglicht, benachrichtigt zu werden, wenn an anderer Stelle im Framework bestimmte Aktionen auftreten. Signale ermöglichen eine Entkopplung zwischen dem Sender des Ereignisses und den Receivern, die auf dieses Ereignis reagieren. Django stellt mehrere integrierte Signale wie pre_save, post_save, pre_delete und post_delete für Modelloperationen bereit.

2

Welches Signal wird unmittelbar vor dem Speichern eines Objekts in der Datenbank ausgelöst?

Antwort

Das pre_save-Signal wird ausgelöst, bevor die save()-Methode eines Modells ausgeführt wird. Es ermöglicht, Änderungen an der Instanz vor dem Speichern vorzunehmen, etwa das Berechnen abgeleiteter Werte oder das Normalisieren von Daten. Dieses Signal ist nützlich, da es sowohl beim Erstellen als auch beim Aktualisieren des Objekts aufgerufen wird.

3

Welcher Dekorator sollte verwendet werden, um eine Receiver-Funktion mit einem Django-Signal zu verbinden?

Antwort

Der @receiver-Dekorator aus django.dispatch ermöglicht es, eine Funktion deklarativ mit einem Signal zu verbinden. Er nimmt das zu überwachende Signal als Parameter und optional den Sender, um Emittenten zu filtern. Dieser Ansatz ist besser lesbar als die connect()-Methode und erleichtert die Wartung des Codes.

4

Welches Argument des post_save-Signals erlaubt es, eine Erstellung von einer Aktualisierung zu unterscheiden?

5

Wo wird empfohlen, den Code der Signal-Receiver in einer Django-Anwendung zu platzieren?

+15 Interview-Fragen

Meistere Django für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten