Fundamentos de Django

1

驴Qu茅 es Django?

2

驴C贸mo instalar Django?

3

Entendiendo la arquitectura de Django

4

Qu茅 es el patr贸n MVT (Model, View y Template)

La M en el Patr贸n: Modelo

5

Introducci贸n a Modelos y Bases de Datos

Manejo Avanzado de Modelos y Bases de Datos

6

Gesti贸n de Modelos y Bases de Datos en Django con SQLite

7

Inserci贸n de Datos con Django

8

Actualizaci贸n y Eliminaci贸n de Datos en Django

Relaciones y Asociaciones entre Modelos

9

Creaci贸n y Gesti贸n de Relaciones entre Modelos en Django

10

Relaciones Muchos a Muchos (N:N) en Django

11

Relaciones Uno a Uno (1:1) en Django

12

Queries y Filtros en Django: Optimizaci贸n y Estrategias Avanzadas

Configuraci贸n de URLs y Vistas Avanzadas

13

Gesti贸n de URLs en Django: Configuraci贸n, Rutas y Mejores Pr谩cticas

14

Vistas Basadas en Clases en Django

La T en el Patr贸n: Plantillas o Templates

15

Personalizaci贸n de Interfaz con Plantillas en Django

Desarrollo de Aplicaciones en Django

16

Configuraci贸n del Proyectos en Django

17

Creaci贸n del Modelo para la Aplicaci贸n 'Products' en Django

18

C贸mo Crear Migraciones de Datos en Django

19

Creaci贸n de la Aplicaci贸n 'Products' con Formularios en Django

20

Integracion de TailwindCSS en Django

21

Django Admin

22

Manejo de Sesiones en Django

23

Manejo de 脫rdenes en CoffeShop

24

Manejo de Pedidos en CoffeShop

25

Mixings en vistas basadas en clases

26

Agregar productos a la orden

Django Rest Framework

27

Django REST Framework

Despliegue de aplicaciones Django

28

Configurar PostgreSQL en AWS con Django

29

Variables de entorno en Django

30

驴C贸mo usar Unit Testing en Django?

31

Debugging en Django

32

Desplegar aplicaciones de Django en AWS

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

0 D铆as
6 Hrs
17 Min
4 Seg
Curso de Django

Curso de Django

Luis Mart铆nez

Luis Mart铆nez

Vistas Basadas en Clases en Django

14/32
Resources

Views are a crucial component in Django, allowing interaction between URLs and business logic.

How to create views in Django?

To keep your code organized, it is ideal to place your views in a dedicated file. If you have views defined in the URLs file, the first step is to move them to the views.py file. Be sure to rename the views if they have duplicate names and import the necessary dependencies, such as HttpResponse.

How to handle function-based views?

Function-based views (FBV) are simple to implement and suitable for non-complex logic. They receive the request object and return an HttpResponse. Here is a basic example:

from django.http import HttpResponsedef MyTestView(request): return HttpResponse("Hello, this is a test view").

How to explore the request object in Django?

The request object in Django contains relevant information about the HTTP request. To explore its attributes, you can use the Django shell:

from django.http import HttpRequest request = HttpRequest() print(request.__dict__)

This will allow you to inspect the properties of the request, such as the HTTP method, the authenticated user, among others.

Why use class-based views?

Class-based views (CBV) facilitate code reuse and modularity. They are more suitable for complex logic and allow you to use built-in Django methods. To convert a function-based view to a class-based view:

  1. Define a class that inherits from a generic Django view.
  2. Implement methods like get_context_data to handle the context.

Here is an example of a CBV:

from django.views.generic import TemplateViewclass CarListView(TemplateView):template_name = "car_list.html" def get_context_data(self, **kwargs):context = super().get_context_data(**kwargs) context['cars'] = Car.objects.all() return context

How to connect a class-based view to a URL?

To connect a CBV to a URL, use the as_view() method in the URLs file:

from django.urls import pathfrom.views import CarListView urlpatterns = [ path('cars/', CarListView.as_view(), name='car-list') ]

How to avoid common mistakes when importing views?

Make sure you import the views from the correct module. Use the editor's auto-completion with caution and check the amounts in the Django documentation.

What are the key differences between FBV and CBV?

  • FBV: Simplicity and ease of implementation for basic tasks.
  • CBV: Modularity and reusability, ideal for complex logic and use of predefined methods.

Contributions 7

Questions 2

Sort by:

Want to see more contributions, questions and answers from the community?

Profe Luis, una recomendaci贸n o simplemente un comentario que considero importante: Una vez digas que resolvamos algo en una clase como mejora a la soluci贸n, pues debe resolverla usted tambi茅n y mostrarla r谩pidamente en la clase posterior, de tal forma que aporte al conocimiento y mas importante a煤n que la aplicaci贸n que vemos en pantalla cuando explica no quede desactualizada y mejore la experiencia al estudiante en el aprendizaje. En este caso en particular mira que el car\_list todav铆a lo obtiene de una lista de diccionarios quemada y no de la BD sqlite como ya deber铆a ir el ejercicio. Muchas gracias y disculpe el atrevimiento
Mi recomendaci贸n aqu铆 es que se acostumbren a utilizar clases, ya que en un entorno empresarial organizado siempre las vamos a ver entonces es importante irnos familiarizando con estas mismas.
隆Hola! Estaba viendo esta clase y me quedaron dudas de como django encontraba el contexto para renderizar con la plantilla, 驴Por qu茅 llamarlo get\_context\_data? La respuesta es porque al crear la clase CarListView, esta hereda de TemplateView, que a su vez, hereda de TemplateResponseMixin, ContextMixin y View, ContextMixin es la clase que tiene ese get\_context\_data y le dice que renderizar ![](https://static.platzi.com/media/user_upload/image-26d4fb44-9410-4f7e-916e-9f16ebb9403d.jpg)
En Django, puedes crear vistas basadas en funciones (**Function-Based Views**, FBVs) o en clases (**Class-Based Views**, CBVs). Ambas tienen prop贸sitos espec铆ficos y son 煤tiles en diferentes contextos. ### **Vistas Basadas en Funciones (FBVs)** Son funciones simples que reciben una solicitud (`request`) y devuelven una respuesta (`HttpResponse`). Son m谩s directas y f谩ciles de entender para tareas peque帽as y personalizadas. #### **Ventajas de FBVs**: 1. **Simplicidad**: F谩ciles de escribir y entender para tareas espec铆ficas. 2. **Flexibilidad**: Puedes personalizar cada aspecto sin la estructura impuesta por las clases. 3. **Ideal para vistas peque帽as**: Cuando la l贸gica de la vista es sencilla. ### **Vistas Basadas en Clases (CBVs)** Son clases que representan vistas. Django ofrece **vistas gen茅ricas** que implementan tareas comunes como listar, crear, actualizar o eliminar registros. Puedes extender estas clases o crear las tuyas propias. #### **Ventajas de CBVs**: 1. **Reutilizaci贸n de c贸digo**: Usar vistas gen茅ricas reduce la necesidad de repetir l贸gica com煤n. 2. **Extensibilidad**: Puedes heredar y personalizar m茅todos seg煤n sea necesario. 3. **Organizaci贸n**: La estructura de las CBVs es m谩s clara en proyectos grandes
Aunque soy nuevo en Django, hoy vi la clase y me quedaron dudas sobre c贸mo pasar un par谩metro a trav茅s del request. Al parecer, es necesario crear una funci贸n dentro de la clase. Pienso que cada clase tendr铆a varias funciones asociadas, y estas se enviar铆an, en los casos respectivos a diferentes templates. ```python class AuthorProfileView(TemplateView): template_name = "my_first_app/author_profile.html" def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) author_id = self.kwargs.get('id') profile = Author.objects.get(id=author_id) context['author_profile'] = profile return context ```class AuthorProfileView(TemplateView): template\_name = "my\_first\_app/author\_profile.html" def get\_context\_data(self, \*\*kwargs): context = super().get\_context\_data(\*\*kwargs) author\_id = self.kwargs.get('id') profile = Author.objects.get(id=author\_id) context\['author\_profile'] = profile return context
Para poder recibir los valores pasados a la URL como en el caso de path("\<str:model>", CarDetailView.as\_view()) en el CarDetailView se recibe as铆 en el m茅todo get\_context\_data `class`` ``CarDetailView``(``TemplateView``):聽 聽 template_name = "myapp/car_detail.html"` `聽 聽 ``def`` get_context_data(``self``, **``kwargs``):聽 聽 聽 聽 return {聽 聽 聽 聽 "car": [car for car in Car.objects.filter(``title``=kwargs["model"])][0]聽 聽 }`
## Convertidores de ruta [露](https://docs.djangoproject.com/en/5.0/topics/http/urls/#path-converters "Enlace permanente a este titular") Los siguientes convertidores de ruta est谩n disponibles de forma predeterminada: * `str`- Coincide con cualquier cadena que no est茅 vac铆a, excepto el separador de ruta `'/'`. Este es el valor predeterminado si no se incluye un convertidor en la expresi贸n. * `int`- Coincide con cero o cualquier entero positivo. Devuelve un `int`. * `slug`- Coincide con cualquier cadena de caracteres que conste de letras o n煤meros ASCII, adem谩s de los caracteres de gui贸n bajo y guion bajo. Por ejemplo, `building-your-1st-django-site`. * `uuid`- Coincide con un UUID formateado. Para evitar que varias URL se asignen a la misma p谩gina, se deben incluir guiones y las letras deben estar en min煤scula. Por ejemplo, `075194d3-6885-417e-a8a8-6c931e272f00`. Devuelve una [`UUID`](https://docs.python.org/3/library/uuid.html#uuid.UUID "(en Python v3.12)")instancia.