Heim >Backend-Entwicklung >Python-Tutorial >Wie führe ich Code beim Django-Start nur einmal aus?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-08 03:28:02431Durchsuche

How to Execute Code Only Once at Django Startup?

Code einmal beim Django-Start ausführen

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!

Stellungnahme:
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