Sommaire

La création de commandes en mode console

manage.py permet d’exécuter un certain nombre de commandes, runserver, shell, syncdb, migrate, etc. Les développeurs Django ont la possibilité d’enrichir la liste des commandes disponibles en ajoutant les commandes de leur application.

À quoi cela sert-il ? Un site peut avoir à exécuter périodiquement certaines opérations de vérification ou de nettoyage, pouvoir les lancer sous la forme d’une commande (d’un script) ou pouvoir les automatiser en les installant dans la crontab d’UNIX ou son équivalent Windows (tâches programmées).

Pour cela il faut créer un répertoire management/commands à votre application. Django enregistrera automatiquement les commandes définies, c’est-à-dire les modules de ce répertoire qui ne commencent pas par le caractère « _ » (underscore). Vous devez donc respecter la structure suivante de fichiers pour votre projet :

mon_application/  
    __init__.py  
    admin.py  
    models.py  
    management/  
        __init__.py  
        commands/  
            __init__.py  
            _ne_pas_charger.py 
            archiver.py  
   views.py 

Dans cet exemple, la commande « archiver » ...