Wie führe ich Code beim Django-Start nur einmal aus?

Linda Hamilton
Freigeben: 2024-11-03 03:29:30
Original
807 Leute haben es durchsucht

How to Execute Code Only Once on Django Startup?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage