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

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
3 Hrs
1 Min
59 Seg
Curso de Django

Curso de Django

Luis Martínez

Luis Martínez

Entendiendo la arquitectura de Django

3/32
Recursos

La arquitectura del framework está diseñada para ser reutilizable y organizar todas tus tareas. Utiliza el modelo MVT (Model, View, Template).

¿Qué es el modelo en MVT (Model, View, Template)?

El modelo es la parte de los datos:

  • Guarda y procesa los datos.
  • Contiene la lógica del negocio, como una calculadora que suma 2 más 2.

¿Qué es la vista en MTV?

La vista actúa como un conector:

  • Accede y dirige los datos.
  • Controla el flujo de peticiones y respuestas.
  • Verifica permisos y realiza comprobaciones necesarias.

¿Qué es el template en MTV?

El template maneja la parte gráfica:

  • Usa HTML y CSS para mostrar los datos.
  • Por ejemplo, muestra una lista de zapatos almacenada en el modelo.

¿Cómo interactúan modelo, vista y template?

El flujo de datos es el siguiente:

  • El modelo pasa datos a la vista en un array.
  • La vista pasa esos datos al template en un contexto.
  • El template muestra los datos gráficos.

En sentido contrario:

  • Un usuario busca en el template.
  • La vista recibe la búsqueda y consulta al modelo.
  • El modelo devuelve los resultados a la vista.
  • La vista envía los datos al template para mostrarlos.

Nota: No debe haber conexión directa entre template y model. Siempre usa la vista para asegurar verificaciones y permisos.

Aportes 13

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Que raro no pongan un resumen en la parte de Recursos, a mi me fue siempre útil leerlo. Por más que el profe explique muy bien la parte escrita aporta términos más exactos para entender el tema, al menos para mí.
En primer párrafo tiene un error en la frase "... Utiliza el modelo MBT: Model, View y Template." en lugar de MBT debería ser MVT
No se si será lo mismo pero la estructura me evoca a la estructura MVC (Modelo Vista Controlador) solo que en este caso Vista viene a corresponderse con el Controlador, y el Template con la Vista del otro modelo. Si alguien tiene un comentario al respecto, se agradece.
Que bueno saber como es la arquitectura, pero no me queda claro que necesidad de crear otra si es literalmente lo mismo a la arquitectura MVC. Según investigaciones que hago, es una implementación basada en MVC, pero no le veo la diferencia ya que son equivalentes, es decir: * Model (MVC) = Model (MTV) * View (MVC) ≈ Template (MTV) * Controller (MVC) ≈ View (MTV) Buscando en algunas AIs, como GPT y Gemini, dicen que: > En esencia, MVC y MTV son muy similares y las diferencias son principalmente terminológicas y de enfoque sutil. Permítame reconocer y explicar este punto: > > \- Similitud funcional: Ambos patrones dividen la aplicación en tres componentes principales que manejan datos, lógica de negocio y presentación > > \- Diferencia más nominal que funcional: La distinción es más una cuestión de nomenclatura y énfasis que de diferencia estructural real. > > \- Adaptación contextual: MTV es esencialmente la interpretación de Django del patrón MVC, adaptado a su filosofía y estructura. > > \- Propósito similar: Ambos buscan separar responsabilidades y mejorar la organización del código. > > Es correcto decir que las diferencias son mínimas y que, en la práctica, trabajar con MTV en Django no es fundamentalmente diferente de trabajar con MVC en otros frameworks. Lo que me hace pensar que esta adaptación es solo para darle una distinción entre los otros frameworks como **Ruby on Rails** o **Laravel**. Ya saben, cosas del mundo Tech 😅
MVT (Model-View-Template) es la arquitectura de Django que organiza el desarrollo de aplicaciones web. 1. **Model**: Se encarga de la lógica de datos y de cómo se guardan y procesan. Define la estructura de datos y las relaciones entre ellos. 2. **View**: Actúa como intermediaria, manejando la lógica de negocio y el flujo de datos. Recibe las solicitudes del usuario, interactúa con el modelo y decide qué datos enviar al template. 3. **Template**: Es la parte visual. Se encarga de presentar los datos al usuario, usando HTML y CSS, permitiendo la creación de una interfaz atractiva. Este flujo asegura una separación de responsabilidades, facilitando la reutilización y el mantenimiento del código.
Django esta basado en el Modelo Vista Controlador (MVC), consiste en cualquier aplicación dividirla en tres módulos, modelo, vista y controlador: * **Modelo**: Se encarga de gestionar los datos, de obtener la información de una base de datos * **Vista**: Encargado de mostrar la información al usuario, con lo que interactúa el usuario. * **Controlador**: Gestiona las comunicaciones entre la vista y el modelo. Como funciona es que un usuario hace una petición desde la vista, puede hacerlo digamos desde un formulario web, esa petición es registrado por el controlador, el controlador el recibir la información demanda datos al modelo que pueden estar en una base de datos, el modelo le pasa la información al controlador y lo muestra en la vista. Esa es la filosofía que ocupa, como lo llama Django es MTV (Model Template View) View es el controlador y Template es la vista.
equivalente a MVC, muy interesante
### Resumen: * **Modelo (Model)**: Define cómo se almacenan los datos en la base de datos. * **Vista (View)**: Maneja la lógica de negocio y recibe las solicitudes de los usuarios. * **Plantilla (Template)**: Genera la presentación visual, convirtiendo los datos en HTML u otros formatos.
¿Django se puede usar en vscode??
Django es un framework de desarrollo web en Python que sigue el patrón de diseño \*\*MTV (Model-Template-View)\*\*, una variante del conocido patrón \*\*MVC (Model-View-Controller)\*\*. Aquí te explico cómo se organiza la arquitectura de Django: \### 1. \*\*Modelos (Models)\*\* \- Representan la estructura de datos de tu aplicación. Los modelos en Django se definen como clases de Python que heredan de `django.db.models.Model`. Cada modelo se traduce en una tabla en la base de datos, y cada instancia del modelo representa una fila en esa tabla. \- Aquí defines los campos y comportamientos de los datos que deseas almacenar, como los tipos de datos y relaciones entre modelos. \### 2. \*\*Plantillas (Templates)\*\* \- Son archivos HTML que definen la presentación de los datos. Django usa un sistema de plantillas propio que permite insertar contenido dinámico, como variables y estructuras de control, en los archivos HTML. \- Las plantillas son responsables de cómo se renderizan los datos en el navegador del usuario. \### 3. \*\*Vistas (Views)\*\* \- Las vistas son funciones o clases que manejan la lógica de la aplicación. Son responsables de recibir una solicitud HTTP, interactuar con los modelos para obtener los datos necesarios y devolver una respuesta HTTP adecuada (como una página HTML, un JSON, etc.). \- Las vistas en Django se asocian a URL específicas a través del archivo `urls.py`. \### 4. \*\*Controlador (Controller)\*\* \- En el caso de Django, el controlador no es un componente explícito como en el patrón MVC tradicional. La lógica del controlador se divide entre las vistas y el sistema de despacho de URLs (`urls.py`), que asocia las URLs de la aplicación con las vistas correspondientes. \### 5. \*\*URL Dispatcher\*\* \- El archivo `urls.py` es donde defines las rutas (URLs) de tu aplicación. Aquí asocias cada URL con una vista específica. Django utiliza un sistema de expresiones regulares para esta asociación. \### 6. \*\*Migrations\*\* \- Django incluye un sistema de migraciones para gestionar los cambios en la estructura de la base de datos. Las migraciones son archivos generados automáticamente o manualmente que Django utiliza para sincronizar el esquema de la base de datos con los modelos definidos en el código. \### 7. \*\*Admin Interface\*\* \- Django ofrece un panel de administración listo para usar que permite a los desarrolladores y administradores gestionar los datos de la aplicación sin necesidad de crear interfaces específicas. \### 8. \*\*Middlewares\*\* \- Son componentes que procesan las solicitudes HTTP antes de que lleguen a las vistas o después de que las respuestas se envíen al cliente. Puedes utilizarlos para tareas como autenticación, manejo de sesiones, o gestión de errores. \### 9. \*\*Formularios (Forms)\*\* \- Django tiene un sistema de formularios que facilita la creación, validación y procesamiento de formularios HTML. Los formularios pueden estar vinculados a modelos (ModelForms) para una integración más sencilla con la base de datos. \### Ejemplo de Flujo en Django: 1\. El usuario envía una solicitud a una URL. 2\. El \*\*URL dispatcher\*\* dirige la solicitud a la vista adecuada. 3\. La \*\*vista\*\* interactúa con los \*\*modelos\*\* para obtener o manipular datos. 4\. La vista pasa los datos a una \*\*plantilla\*\* para su renderización. 5\. La plantilla genera una respuesta HTML que se envía de vuelta al usuario. Esta arquitectura permite que el desarrollo sea modular y escalable, lo que facilita la creación y mantenimiento de aplicaciones web complejas.
Genial clase
Flujo de Trabajo de MVT en Django Solicitud: Un usuario realiza una solicitud HTTP (por ejemplo, accediendo a una URL). URL Resolver: Django utiliza su sistema de enrutamiento para mapear la URL a una vista específica. Vista: La vista correspondiente procesa la solicitud, interactúa con el modelo si es necesario, y prepara los datos para la plantilla. Modelo: Si la vista necesita datos de la base de datos, consulta el modelo correspondiente para obtener o manipular los datos. Plantilla: La vista pasa los datos a la plantilla, que renderiza el HTML final con los datos dinámicos. Respuesta: Django devuelve la respuesta HTTP al usuario con el HTML generado.
Django es el framework más precioso que tiene Python, su ORM es bastante potente, además al ya tener bastante módulos listos es más fácil manejar la autenticación y si quieres utilizar API ya te da Django Rest Framework