Maison  >  Article  >  développement back-end  >  Comment exécuter du code une fois au démarrage de Django avec AppConfig ?

Comment exécuter du code une fois au démarrage de Django avec AppConfig ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 12:49:02895parcourir

How to Execute Code Once on Django Startup with AppConfig?

Exécuter le code une fois au démarrage de Django avec AppConfig

Lors de la création d'applications Django, il peut y avoir des cas où vous souhaitez exécuter un code spécifique une seule fois au démarrage. Une classe middleware Django peut être utilisée pour y parvenir, mais dans les versions antérieures, cela pouvait entraîner l'exécution du code plusieurs fois.

Solution pour les versions Django < 1.7

Pour les versions de Django antérieures à 1.7, il était recommandé de placer le code de démarrage dans l'un des fichiers __init__.py de INSTALLED_APPS. Voici un exemple :

<code class="python">def startup():
    pass # load a big thing

startup()</code>

Solution pour Django 1.7 et supérieur

Django 1.7 a introduit la méthode AppConfig.ready(), qui vous permet de spécifier le code de démarrage. L'utilisation de cette méthode garantit que le code ne s'exécute qu'une seule fois pendant le chargement de l'application.

<code class="python"># myapp/apps.py
from django.apps import AppConfig

class MyAppConfig(AppConfig):
    name = 'myapp'
    verbose_name = "My Application"

    def ready(self):
        pass # startup code here</code>

Notes supplémentaires

Lors de l'utilisation de ./manage.py runserver, le code de démarrage peut exécuter deux fois en raison des opérations internes du serveur. Cependant, dans les scénarios de déploiement typiques ou de rechargements automatisés, le code n'est exécuté qu'une seule fois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn