Maison >développement back-end >Tutoriel Python >Comment exécuter du code une seule fois au démarrage de Django ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 03:29:30859parcourir

How to Execute Code Only Once on Django Startup?

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!

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