ModelViewSet e router
Generare automaticamente le route CRUD
ModelViewSet e router è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Il problema della ripetizione nel CRUD
Scrivere manualmente le operazioni di elenco, creazione, recupero, aggiornamento ed eliminazione significa produrre molto codice quasi identico. Un ViewSet raggruppa tutto in un'unica classe ordinata.
Conoscere ModelViewSet
ModelViewSet offre tutte le operazioni CRUD per un modello con pochissimo codice. Gli indichi un queryset e un serializer e si occuperà del resto.
from rest_framework import viewsets
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializerDue attributi fanno tutto
Queste due righe contengono tutta la classe. queryset indica quali righe sono coinvolte, mentre serializer_class indica come trasformarle in JSON. 📦
Le azioni incluse automaticamente
Un ModelViewSet fornisce cinque azioni: list, create, retrieve, update, partial_update e destroy. Non ne ha scritta nessuna manualmente.
Perché esistono i router
Un ViewSet raggruppa le azioni, ma gli URL devono comunque essere collegati. Un router legge il Suo ViewSet e genera automaticamente ogni pattern URL.
Registrare con DefaultRouter
Crei un DefaultRouter, registri il Suo ViewSet con un prefisso e il router costruirà per Lei l'intero insieme di URL.
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'books', BookViewSet)Integrare gli URL del router
Il router espone router.urls, un elenco pronto di pattern. Lo aggiunga a urlpatterns e gli endpoint saranno immediatamente attivi.
urlpatterns = [
path('api/', include(router.urls)),
]Gli URL appena creati
Registrando un ViewSet ottiene /books/ per l'elenco e la creazione, oltre a /books/{id}/ per il recupero, l'aggiornamento e l'eliminazione. 🚀
I verbi HTTP corrispondono alle azioni
Il router associa i verbi alle azioni: GET elenca, POST crea, GET su un id recupera, PUT o PATCH aggiorna e DELETE elimina. Un ViewSet, sei comportamenti.
DefaultRouter e SimpleRouter
DefaultRouter aggiunge una comoda vista principale dell'API che elenca gli endpoint. SimpleRouter la omette quando desidera un insieme di URL più essenziale.
Aggiungere un'azione personalizzata
Ha bisogno di un endpoint aggiuntivo? Il decoratore @action aggiunge una route personalizzata a un ViewSet senza dover uscire dalla classe.
from rest_framework.decorators import action
@action(detail=True, methods=['post'])
def favorite(self, request, pk=None):
...Verifica rapida
È il momento di consolidare il modo in cui ViewSet e router lavorano insieme.
Riepilogo: CRUD in poche righe
Ha imparato che un ModelViewSet insieme a un router trasforma due brevi classi in una API CRUD completa, con URL ordinati generati automaticamente. Ottimo lavoro! 🎉
Domande Frequenti
La lezione «ModelViewSet e router» è gratuita?
Sì — il testo completo di «ModelViewSet e router» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «ModelViewSet e router»?
Generare automaticamente le route CRUD Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «ModelViewSet e router»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- ModelViewSet e router
- Permessi e limitazione delle richieste
- Autenticazione con token e JWT
- Filtri, ricerca e paginazione