Dans Django, l'exécution de code une seule fois pendant le démarrage peut être une exigence commune. Explorons une solution qui garantit que le code est exécuté uniquement pendant le démarrage du serveur initial, et non sur les demandes suivantes.
Initialement, la solution proposée dans la question liée a soulevé le message "Hello World" deux fois dans le terminal. Le problème réside dans l'utilisation de l'exception de MiddlewarenotUsed pour mettre fin à l'exécution du middleware.
En commençant par Django 1.7, un crochet 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 le code de démarrage uniquement. Cette approche est plus propre et plus explicite que l'utilisation de middleware.
pour les versions django avant 1.7, plaçant le code de démarrage dans le fichier __init__.py de l'un de vos rapports installés_apps s'est avéré efficace. Ce code sera exécuté lorsque l'application sera chargée pour la première fois, garantissant qu'il ne fonctionne qu'une seule fois.
Voici un exemple du placement de code pour cette approche:
# myapp/__init__.py import your_module your_module.initializer()
Prenez noter que lorsque vous utilisez la commande ./manage.py Runserver, le code d'initialisation peut être exécuté deux fois en raison des processus de validation du serveur interne. Cependant, dans les scénarios de déploiement typiques ou lors de rechargements automatiques de RunServer, le code ne s'exécutera qu'une seule fois.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3