Heim > Artikel > Backend-Entwicklung > Wie führe ich den Initialisierungscode beim Start des Django-Servers nur einmal aus?
In Django kann es eine häufige Anforderung sein, Code nur einmal während des Startvorgangs auszuführen. Lassen Sie uns eine Lösung untersuchen, die sicherstellt, dass der Code nur beim ersten Serverstart und nicht bei nachfolgenden Anforderungen ausgeführt wird.
Anfangs löste die in der verlinkten Frage vorgeschlagene Lösung zweimal die Meldung „Hallo Welt“ im Terminal aus. Das Problem liegt in der Verwendung der MiddlewareNotUsed-Ausnahme, um die Ausführung der Middleware zu beenden.
Ab Django 1.7 wurde ein dedizierter Hook eingeführt, um dieses Problem zu beheben. Durch Überschreiben der ready-Methode in der AppConfig-Klasse Ihrer App können Sie Nur-Start-Code angeben. Dieser Ansatz ist sauberer und expliziter als die Verwendung von Middleware.
Für Django-Versionen vor 1.7 hat sich die Platzierung des Startcodes in der Datei __init__.py eines Ihrer INSTALLED_APPS als effektiv erwiesen. Dieser Code wird ausgeführt, wenn die Anwendung zum ersten Mal geladen wird, um sicherzustellen, dass sie nur einmal ausgeführt wird.
Hier ist ein Beispiel für die Codeplatzierung für diesen Ansatz:
# myapp/__init__.py import your_module your_module.initializer()
Beachten Sie, wann Wenn Sie den Befehl ./manage.py runserver verwenden, wird der Initialisierungscode aufgrund interner Servervalidierungsprozesse möglicherweise zweimal ausgeführt. In typischen Bereitstellungsszenarien oder beim automatischen Neuladen durch den Runserver wird der Code jedoch nur einmal ausgeführt.
Das obige ist der detaillierte Inhalt vonWie führe ich den Initialisierungscode beim Start des Django-Servers nur einmal aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!