Code einmal beim Django-Start ausführen
Beim Erstellen benutzerdefinierter Django-Middleware-Klassen ist es oft notwendig, Code nur einmal beim Start auszuführen. Die Verwendung des von sdolan beschriebenen Standardansatzes kann jedoch dazu führen, dass der gewünschte Code zweimal ausgeführt wird.
Lösung
Um sicherzustellen, dass die Codeausführung nur einmal erfolgt, für Django-Versionen 1.7 und höher verwenden Sie den neuen Hook von Django. In der apps.py-Datei Ihrer App:
<code class="python">from django.apps import AppConfig class MyAppConfig(AppConfig): name = 'myapp' verbose_name = "My Application" def ready(self): pass # Your startup code here</code>
Fügen Sie für Django-Versionen vor 1.7 Ihren Startcode in eine der __init__.py-Dateien Ihrer INSTALLED_APPS ein:
<code class="python">def startup(): pass # Load a big thing startup()</code>
Wann Bei Verwendung von ./manage.py runserver wird dieser Code aufgrund von Servervalidierungen zweimal ausgeführt. Bei Produktionsbereitstellungen oder beim automatischen Neuladen des Servers wird der Code jedoch nur einmal ausgeführt.
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!