Heim > Artikel > Backend-Entwicklung > Wie führe ich Code einmal beim Django-Startup aus?
Einzelausführungscode zum Ausführen beim Django-Startup erhalten
Bei der Entwicklung von Django-Anwendungen kann es Fälle geben, in denen Sie bestimmten Code ausführen müssen nur einmal während des Startvorgangs, normalerweise zu Initialisierungszwecken. Die Verwendung einer Middleware-Klasse für dieses Ziel kann jedoch zu mehreren Ausführungen führen, da das Django-Middleware-System bei jeder Anfrage die __init__()-Methode jeder Middleware aufruft.
Djangos Lösung für Django < 1.7
Um dieses Problem in Django-Versionen vor 1.7 zu beheben, besteht ein effektiver Ansatz darin, Ihren Startcode in der Datei __init__.py eines Ihrer INSTALLED_APPS zu platzieren. In der myapp-Anwendung können Sie beispielsweise den folgenden Code in myapp/__init__.py einfügen:
<code class="python">def startup(): pass # Place your startup code here startup()</code>
Dieser Ansatz stellt sicher, dass die Funktion „startup()“ während des Django-Starts ausgeführt und nicht erneut aufgerufen wird nachfolgende Anfragen, die die gewünschte einmalige Ausführung ermöglichen.
Verbesserte Lösung für Django 1.7 und höher
Django Version 1.7 führte eine elegantere Lösung für diese Anforderung ein. Durch die Implementierung einer AppConfig-Klasse mit einer ready()-Methode in der apps.py-Datei Ihrer Anwendung können Sie Code angeben, der ausgeführt werden soll, wenn die Anwendung als bereit markiert wird. Hier ist ein Beispiel mit der myapp-Anwendung:
<code class="python"># myapp/apps.py from django.apps import AppConfig class MyAppConfig(AppConfig): name = 'myapp' verbose_name = "My Application" def ready(self): pass # Place your startup code here</code>
Dieser Ansatz ermöglicht es Ihnen, Ihren Startcode natürlicher zu definieren und auszuführen und ist die empfohlene Lösung für Django 1.7 und höher.
Das obige ist der detaillierte Inhalt vonWie führe ich Code einmal beim Django-Startup aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!