Class-Based Views vs Function-Based Views: co a kdy použít

Porovnání Class-Based Views (CBV) a Function-Based Views (FBV) v Django — jejich výhody, nevýhody a doporučení pro různé typy úloh. Ukážeme i konkrétní příklady.

Class-Based Views vs Function-Based Views: co a kdy použít

Django podporuje dva přístupy k psaní view — funkční i objektové. Oba mají své místo; pojďme si je porovnat a ukázat, kdy je lepší který použít.

Function-Based Views (FBV)

FBV jsou přímé a jednoduché, ideální pro malé, jednorázové endpointy:

def hello(request):    return HttpResponse('Ahoj')

Class-Based Views (CBV)

CBV poskytují opětovné použití a rozšiřitelnost pomocí dědičnosti a mixinů. Např. generické CBV pro CRUD:

from django.views.generic import ListView\nclass PostListView(ListView):    model = Post    template_name = 'posts/list.html'

Doporučení

  • Použij FBV pro jednoduché view bez opakující se logiky.
  • Použij CBV pokud chceš využít dědičnost, mixiny a generické pohledy.
  • Kombinuj — není nutné se rozhodovat pouze pro jednu cestu.

V příštím článku si ukážeme, jak napsat a použít vlastní middleware.

@admin

13. července 2025


Komentáře 0