GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter du code dans le shell Django par un script python externe ?

Essayez d'entrer les commandes dans le django-shell en cours d'exécution en tant que document ici :

$ sudo python manage.py shell << EOF
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()
exit()
EOF

Premièrement, vous ne devriez pas accéder à votre shell Python avec sudo . Il n'est pas nécessaire d'être exécuté en tant que root.

Deuxièmement, la façon de créer un script qui s'exécute à partir de l'invite de commande consiste à écrire un script manage.py personnalisé, afin que vous puissiez exécuter ./manage.py deactivate_users . Des instructions complètes pour le faire sont dans la documentation.


Si vous souhaitez exécuter un script Python qui accède aux modèles Django, vous devez d'abord définir une variable d'environnement :

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<path>.settings")

Dans lequel vous devez remplacer <path> par votre répertoire de projet, celui qui contient le fichier settings.py .

Vous pouvez ensuite importer vos fichiers modèles, par exemple :

from <path>.models import User
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()

Linux
  1. Comment obtenir l'adresse IP externe dans un script shell ?

  2. Comment chiffrer ou rendre le script shell illisible ?

  3. Comment exécuter la commande avant la connexion de l'utilisateur sous Linux ?

  4. Comment exécuter un script dans Shell lorsqu'une touche de raccourci est enfoncée ?

  5. Comment lire l'intégralité du script Shell avant de l'exécuter ?

Comment exécuter une commande Shell avec Python

Comment limiter l'accès de l'utilisateur au système Linux

Comment exécuter des scripts Python à partir du shell

Comment exécuter une commande dans un script shell ?

Comment exécuter un script Python à partir de Java ?

Exécuter automatiquement le script bash sous les privilèges d'un autre utilisateur