Django Academy · Lezione

Dalle view basate su funzioni alle view basate su classi

Scopra perché esistono le CBV e quando usarle

Lezione 1 di 413 passaggi

Dalle view basate su funzioni alle view basate su classi è 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.

Due modi per creare le viste

Finora le vostre viste erano semplici funzioni. Django consente anche di scrivere viste come classi, che raggruppano in modo ordinato la logica correlata.

Che cos'è una vista basata su classi

Una vista basata su classi (CBV) è semplicemente una classe Python che gestisce una richiesta. Django la trasforma automaticamente in un oggetto chiamabile.

Il problema della ripetizione

Le viste basate su funzioni spesso ripetono la stessa struttura: recuperare i dati, creare il contesto e visualizzare un template. Le CBV consentono di riutilizzare questa struttura invece di copiarla.

Una vista basata su funzioni, per confronto

Ecco una familiare vista basata su funzioni. Riceve una richiesta e restituisce una risposta, tutto in un unico blocco.

def home(request):
    return render(request, "home.html")

La stessa vista come classe

Come classe, create una sottoclasse di View e definite un metodo per ogni verbo HTTP. La logica è la stessa, ma organizzata diversamente.

class HomeView(View):
    def get(self, request):
        return render(request, "home.html")

I metodi corrispondono ai verbi HTTP

In una CBV, un metodo get gestisce le richieste GET e un metodo post gestisce le richieste POST. Non servono più enormi controlli if su request.method.

L'ereditarietà significa riutilizzo

Poiché le CBV sono classi, potete creare una sottoclasse e sovrascrivere solo ciò che cambia. Il comportamento condiviso rimane una sola volta nella classe genitore.

Django include viste generiche

Django include viste generiche già pronte, come ListView e DetailView. Coprono gli schemi più comuni, così dovete scrivere pochissimo codice.

Quando le funzioni sono ancora la scelta migliore

Per una vista piccola e usata una sola volta, una funzione è spesso più chiara. Scegliete le CBV quando la logica si ripete o diventa complessa.

Entrambe si integrano con urls.py

Entrambi gli stili vengono collegati allo stesso modo in urls. Una CBV ha solo bisogno di as_view() per diventare un oggetto chiamabile a cui Django può associare una route.

path("", HomeView.as_view())

Scegliete lo strumento giusto

Le CBV non sono né migliori né peggiori: sono semplicemente diverse. Scegliete in base al riutilizzo: gli schemi ripetuti favoriscono le classi, le pagine semplici le funzioni.

Verifica rapida

Qual è il motivo principale per cui esistono le viste basate su classi?

Riepilogo: funzioni e classi

Avete conosciuto le viste basate su classi: classi che gestiscono le richieste, associano i metodi ai verbi HTTP e riutilizzano la logica tramite l'ereditarietà. Sono ideali quando gli schemi si ripetono. 🎯

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Dalle view basate su funzioni alle view basate su classi» è gratuita?

Sì — il testo completo di «Dalle view basate su funzioni alle view basate su classi» è 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 «Dalle view basate su funzioni alle view basate su classi»?

Scopra perché esistono le CBV e quando usarle 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 «Dalle view basate su funzioni alle view basate su classi»?

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. Dalle view basate su funzioni alle view basate su classi
  2. TemplateView e get_context_data
  3. Gestire i metodi get e post
  4. Mixin e as_view()
← Torna a Django Academy