Exécuter le code une fois au démarrage de Django
Lors de la création de classes middleware Django personnalisées, il est souvent nécessaire d'exécuter le code une seule fois au démarrage. Cependant, l'utilisation de l'approche standard décrite par sdolan peut entraîner l'exécution du code souhaité deux fois.
Solution
Pour garantir que l'exécution du code ne se produit qu'une seule fois, pour les versions 1.7 de Django et ci-dessus, utilisez le nouveau hook fourni par Django. Dans le fichier apps.py de votre application :
<code class="python">from django.apps import AppConfig class MyAppConfig(AppConfig): name = 'myapp' verbose_name = "My Application" def ready(self): pass # Your startup code here</code>
Pour les versions de Django antérieures à 1.7, placez votre code de démarrage dans l'un des fichiers __init__.py de INSTALLED_APPS :
<code class="python">def startup(): pass # Load a big thing startup()</code>
Quand en utilisant ./manage.py runserver, ce code s'exécutera deux fois en raison des validations du serveur. Cependant, dans les déploiements en production ou lors des rechargements automatiques du serveur, 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!