Dans Django, exécuter le code une seule fois au démarrage peut être une exigence courante. Explorons une solution qui garantit que le code est exécuté uniquement lors du démarrage initial du serveur, et non lors des requêtes ultérieures.
Initialement, la solution proposée dans la question liée a généré deux fois le message « Bonjour tout le monde » dans le terminal. Le problème réside dans l'utilisation de l'exception MiddlewareNotUsed pour mettre fin à l'exécution du middleware.
À partir de Django 1.7, un hook dédié a été introduit pour résoudre ce problème. En remplaçant la méthode ready dans la classe AppConfig de votre application, vous pouvez spécifier du code de démarrage uniquement. Cette approche est plus propre et plus explicite que l'utilisation d'un middleware.
Pour les versions de Django antérieures à 1.7, placer le code de démarrage dans le fichier __init__.py de l'une de vos INSTALLED_APPS s'est avéré efficace. Ce code sera exécuté lors du premier chargement de l'application, garantissant qu'elle ne s'exécute qu'une seule fois.
Voici un exemple de placement de code pour cette approche :
# myapp/__init__.py import your_module your_module.initializer()
Veuillez noter que lorsque à l'aide de la commande ./manage.py runserver, le code d'initialisation peut être exécuté deux fois en raison des processus de validation internes du serveur. Cependant, dans des scénarios de déploiement typiques ou lors de rechargements automatiques par runserver, le code ne s'exécutera 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!