Lo scripting della shell in Django è la capacità di utilizzare la shell di Python per interagire con il codice Django. Se stai lavorando su un’app Django, potresti trovare la necessità di eseguire uno script Python che utilizza i modelli Django e le loro funzionalità. Ciò può essere fatto utilizzando Django shell.
Ci sono due modi principali per utilizzare gli script della shell Django:
Il modo più comune di interagire con il codice Django è attraverso la shell Django. Puoi avviare la shell Django utilizzando il comando `python manage.py shell` nel tuo terminale. L’ambiente di shell Django è proprio come l’interprete Python ma con vantaggio aggiuntivo: è caricato con l’ambiente Django.
Per esempio, supponiamo di avere un modello Django chiamato `Persona` e vuoi creare un nuovo record nel database. Potresti fare quanto segue:
```
from myapp.models import Persona
p = Persona(nome=“Mario”, cognome=“Rossi”)
p.save()
```
Un altro modo per eseguire gli script nella shell Django è creando il tuo script di gestione personalizzato. Un comando di gestione è essenzialmente un comando della riga di comando personalizzato che puoi eseguire utilizzando l’application manager di Django.
Per esempio, supponiamo di voler creare un comando di gestione che crea una nuova `Persona`. Il comando di gestione potrebbe essere così:
```
from django.core.management.base import BaseCommand
from myapp.models import Persona
class Command(BaseCommand):
def handle(self, *args, **options):
p = Persona(nome=“Mario”, cognome=“Rossi”)
p.save()
```
Puoi eseguire questo comando di gestione con `python manage.py tuo_comando`.
Questo metodo è particolarmente utile se hai un tasks ripetitivi che devi eseguire frequentemente.
Queste informazioni sono state tratte dal [documentazione ufficiale di Django](https://docs.djangoproject.com/en/3.2/intro/tutorial01/), dalla, una [guida utile di Mozilla](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Models) sulla programmazione del database con Django e dal [documento di Django sulle scritture di gestione personalizzate](https://docs.djangoproject.com/en/3.2/howto/custom-management-commands/).