Django Academy · Lektion

Från funktionsvyer till vyklasser

Varför CBV finns och när de bör användas

Lektion 1 av 413 steg

Från funktionsvyer till vyklasser är en gratis lektion i Django Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Django Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Django Academy innehåller totalt 4 lektioner.

Två sätt att bygga vyer

Hittills har era vyer varit vanliga funktioner. Django låter er också skriva vyer som klasser, vilket samlar relaterad logik på ett tydligt sätt.

Vad är en klassbaserad vy

En klassbaserad vy (CBV) är helt enkelt en Python-klass som hanterar en förfrågan. Django omvandlar den till en anropsbar funktion i bakgrunden.

Problemet med upprepning

Funktionsvyer upprepar ofta samma struktur: hämta data, skapa kontext och rendera en mall. CBV:er låter er återanvända strukturen i stället för att kopiera den.

En funktionsvy som jämförelse

Här är en välbekant funktionsvy. Den tar emot en förfrågan och returnerar ett svar, allt i samma kodblock.

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

Samma vy som klass

Som klass ärver ni från View och definierar en metod per HTTP-verb. Logiken är densamma, men organiserad på ett annat sätt.

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

Metoder motsvarar HTTP-verb

I en CBV hanterar en get-metod GET-förfrågningar och en post-metod POST. Ni behöver inte längre stora if-kontroller av request.method.

Arv innebär återanvändning

Eftersom CBV:er är klasser kan ni ärva och bara skriva över det som ändras. Gemensamt beteende finns en gång i basklassen.

Django levereras med generiska vyer

Django innehåller färdiga generiska vyer som ListView och DetailView. De täcker vanliga mönster, så ni behöver skriva nästan ingen kod.

När funktioner fortfarande är bäst

För en liten, unik vy är en funktion ofta tydligare. Välj CBV:er när logiken upprepas eller blir komplex.

Båda kopplas in i urls.py

Båda stilarna kopplas in på samma sätt i urls. En CBV behöver bara as_view() för att bli anropsbar och kunna dirigeras till av Django.

path("", HomeView.as_view())

Välj rätt verktyg

CBV:er är varken bättre eller sämre, utan bara annorlunda. Välj utifrån återanvändning: upprepade mönster talar för klasser och enkla sidor för funktioner.

Snabbkontroll

Vad är det främsta skälet till att klassbaserade vyer finns?

Sammanfattning: funktioner kontra klasser

Ni har nu mött klassbaserade vyer: klasser som hanterar förfrågningar, kopplar metoder till HTTP-verb och återanvänder logik genom arv. De är utmärkta när mönster upprepas. 🎯

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Från funktionsvyer till vyklasser” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Django Academy, inklusive ”Från funktionsvyer till vyklasser”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Django Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Från funktionsvyer till vyklasser”?

Varför CBV finns och när de bör användas Ni övar på Django Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Django Academy?

Du behöver inga förkunskaper. Utbildningen i Django Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Från funktionsvyer till vyklasser”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Django Academy-lektionen?

Ja. Varje Django Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Från funktionsvyer till vyklasser
  2. TemplateView och get_context_data
  3. Hantera get- och post-metoder
  4. Mixins och as_view()
← Tillbaka till Django Academy