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

Linda Hamilton
Libérer: 2024-11-03 03:29:30
original
807 Les gens l'ont consulté

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

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

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!

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