Comment exécuter le code d'initialisation une seule fois lors du démarrage du serveur Django ?

Patricia Arquette
Libérer: 2024-11-03 19:52:03
original
708 Les gens l'ont consulté

How to Execute Initialization Code Only Once During Django Server Startup?

Exécution du code d'initialisation dans Django au démarrage

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!