0Pricing
Django Academy · Lezione

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 = BookSerializer

Due 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

  1. ModelViewSet e router
  2. Permessi e limitazione delle richieste
  3. Autenticazione con token e JWT
  4. Filtri, ricerca e paginazione
← Torna a Django Academy