Problem:
Bei der Implementierung einer Django-Middleware-Klasse, die nur einmal ausgeführt werden soll Startup, um zusätzlichen Code zu initialisieren, wird die Meldung „Hallo Welt“ zweimal gedruckt.
Lösung:
Für Django >= 1.7:
Verwenden Sie die Methode ready() in einer AppConfig-Klasse:
<code class="python"># myapp/apps.py class MyAppConfig(AppConfig): name = 'myapp' verbose_name = "My Application" def ready(self): # startup code goes here</code>
Für Django < 1.7:
Fügen Sie den Startcode in die Datei __init__.py einer installierten App ein:
<code class="python"># myapp/__init__.py def startup(): # startup code goes here startup()
Erklärung:
Verwendet Die Methode ready() in Django >= 1.7 stellt sicher, dass der Code ausgeführt wird, nachdem Django das Laden aller Modelle und Migrationen abgeschlossen hat. Für Django < 1.7 stellt die Platzierung des Codes in __init__.py sicher, dass er beim Import ausgeführt wird, der einmal pro Prozess erfolgt.
Das obige ist der detaillierte Inhalt vonWie führe ich Code beim Django-Start nur einmal aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!