De vistas de funciones a clases de vista
Por qué existen las CBV y cuándo utilizarlas
De vistas de funciones a clases de vista es una lección gratuita de Django Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Django Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Django Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Two Ways to Build Views
So far your views were plain functions. Django also lets you write views as classes, which package related logic together neatly.
What a Class-Based View Is
A class-based view (CBV) is just a Python class that handles a request. Django turns it into a callable for you behind the scenes.
The Repetition Problem
Function views often repeat the same shape: fetch data, build context, render a template. CBVs let you reuse that shape instead of copying it.
A Function View, For Contrast
Here is a familiar function view. It takes a request and returns a response, all in one block.
def home(request):
return render(request, "home.html")The Same View as a Class
As a class, you subclass View and define a method per HTTP verb. The logic is the same, just organized differently.
class HomeView(View):
def get(self, request):
return render(request, "home.html")Methods Map to HTTP Verbs
In a CBV, a get method handles GET requests and a post method handles POST. No more giant if-checks on request.method.
Inheritance Means Reuse
Because CBVs are classes, you can subclass and override only what changes. Shared behavior lives in a parent class once.
Django Ships Generic Views
Django includes ready-made generic views like ListView and DetailView. They cover common patterns so you write almost no code.
When Functions Still Win
For a tiny, one-off view, a function is often clearer. Reach for CBVs when logic repeats or grows complex.
Both Plug Into urls.py
Both styles get wired the same way in urls. A CBV just needs as_view() to become a callable Django can route to.
path("", HomeView.as_view())Pick the Right Tool
CBVs are not better or worse, just different. Choose based on reuse: repeated patterns favor classes, simple pages favor functions.
Quick Check
What is the main reason class-based views exist?
Recap: Functions vs Classes
You met class-based views: classes that handle requests, map methods to HTTP verbs, and reuse logic through inheritance. Great when patterns repeat. 🎯
Preguntas frecuentes
¿La lección «De vistas de funciones a clases de vista» es gratis?
Sí — el texto completo de «De vistas de funciones a clases de vista» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Django Academy, actualiza a CoddyKit PRO. El curso de Django Academy incluye 4 lecciones en total.
¿Qué aprenderé en «De vistas de funciones a clases de vista»?
Por qué existen las CBV y cuándo utilizarlas Practicas Django Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Django Academy?
No se requiere experiencia previa. Django Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «De vistas de funciones a clases de vista»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Django Academy?
Sí. Cada lección de Django Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- De vistas de funciones a clases de vista
- TemplateView y get_context_data
- Gestionar los métodos get y post
- Mixins y as_view()