Modelo:
models.py: Son los modelos dentro de nuestra aplicación.
Controlador:
urls.py: Maneja la parte de rutas.
views.py: Maneja el request de un usuario.
Vista:
(Template) html: Se renderiza a través del sistema de templates de django.
Introducción
Qué aprenderás sobre Django
Historia de web development
Preparación del entorno de trabajo en Mac
Preparación del entorno de trabajo en Windows y Linux
Creación del proyecto Platzigram / Tu primer Hola, mundo! en Django
Vistas
El objeto Request
Solución al reto - Pasando argumentos en la URL
Creación de la primera app
Introducción al template system
Patrones de diseño y Django
Models
La M en el MTV
El ORM de Django
Glosario
Extendiendo el modelo de usuario
Implementación del modelo de usuarios de Platzigram
Explorando el dashboard de administración
Dashboard de Administración
Creación del modelo de posts
Templates, auth y middlewares
Templates y archivos estáticos
Login
Logout
Signup
Middlewares
Forms
Formularios en Django
Mostrando el form en el template
Model forms
Validación de formularios
Class-based views
Class-based views
Protegiendo la vista de perfil, Detail View y List View
CreateView, FormView y UpdateView
Generic auth views
Deployment
Arquirectura / Conceptos / Componentes
¿Cómo conectar Django a una base de datos?
Configurar el servidor
Preparación del VPS (en AWS)
Conclusiones del curso
Bonus
¿Cómo usar los templates en Django?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Un patrón de diseño, en términos generales, es una solución reutilizable a un problema común.
El patrón más común para el desarrollo web es MVC (Model, View, Controller). Django implementa un patrón similar llamado MTV (Model, Template, View).
Aportes 40
Preguntas 1
El MVC no es un patrón de diseño, es un patrón de arquitectura.
Es la forma en la que creamos esquemas de objetos (un usuario, un post, etc) para representarlos en nuestra base de datos.
El modelo sin importar nuestro sistema ge BD (mysql, postgress, etc) nos ayudara a crear esta entidad a través de un OMR, esto nos ahorra la molestia de tener que escribir las sentencias de SQL para crear las tablas y atributos.
Es el encargado de manejar la lógica y sintaxis de la información que se va a presentar en el cliente, el sistema de templates de django usa HTML para ello.
Su función es solo suministrar datos al template
Manda la información necesaria el template para que este pueda manejar los datos y presentarlos de una manera correcta.
Siento que esta clase debería estar una antes que la de templates.
Yo entiendo como patrones de diseño algo diferente, basandome en el libro Uml y Patrones de Craig Larman. Yo los llamaría más bien patrones arquitecturales.
Lamentablemente el profesor está confundiendo conceptos: el MVC o MVT son patrones de arquitectura, que es a términos generales en cuanto al desarrollo de un sistema.
Si queremos ver patrones de diseño, que en efecto son soluciones a problemas comunes, les recomiendo esta serie donde se explican muy bien los conceptos:
https://www.youtube.com/watch?v=3qTmBcxGlWk
Hola, les dejo mi resumen. Por favor ayúdenme a mejorarlo.😃
Saludos
Muy buena la clase y el profe explica excelente.
Solo una observación que veo que ya varios han hecho en los comentarios.
Si queremos comparar MTP, con MVC es erróneo utilizar el nombre de Patron de diseño, ya que MVC no es un Patrón de diseño, sino un Patrón de arquitectura.
Si habláramos de Patrones de diseño en tal caso podríamos hablar del Patrón Observer que es la clave del patrón de arquitectura MVC. Les comparto la información de la Wikipedia en la que me baso:
Modelo–vista–controlador
Observer (patrón de diseño)
Django (framework) - Sección: Otros aspectos - Inconsistencias entre la nomenclatura Django y el patrón MVC
Que cool quedo la parte de platzigram
Buen día,
Modelo-vista-controlador es un patrón de arquitectura de software.
interesante conocer todo el mundo de patrones de diseño
Controller, maneja la lógica del request, entiende qué hacer para mostrar el template, cambiando los datos a través del modelo, ,el modelo se encarga de definir la estructura de los datos, su acceso y validación. La vista se encarga de cómo presentar estos datos, que son mostrados al usuario.
separar los Datos de la presentación y de la lógica, es el motivo del MVC
El problema es: ¿Cómo muestras, traes y actualizas los datos? Bueno para ello, existen los patrones de diseño. Que en una definición general, son soluciones reutilizables a un problema en común.
No podemos tener conexión a la base datos, presentación de los datos y la lógica para presentar los datos.
En PHP, tenemos que se combina la lógica del lenguaje, con la presentación en HTML. Caso que también vemos en los CGI scripts, en dónde toda una sentencia, escribe toda la respuesta en HTML, enserio, toda la página que chucha.
Django utiliza el patrón de diseño, model view controller, para reemplazar los CGI scripts, de los que podríamos decir, son muy mala práctica. Django adapta este concepto en MTV, Model Template View.
que bieen, veee, había escuchado de mvc, vamos a ver como nos va
Template system de Django es una manera de presentar los datos usando HTML, está inspirado en Jinja2 y su sintaxis, por lo cual comparte muchas similitudes. Permite incluir alguna lógica de programación.
Excelente … refrescando conocimientos adquiridos hace un tiempo
reaprendiendo MVC, que recuerdos cuando empecé a conocer este patrón con angular.js
me gusta, vengo de trabajar laravel por años pero django me esta gustando
mvc y mtv basicamente lo mismo con nombre diferente, vamos a ver como se usa.
Patrón de diseño: Solución reutilizable a un problema común.
Investigue un poco de MTV y al parecer solo Django maneja ese patrón de diseño, saben si se aplica en otros frameworks?
Yo tengo varias vistas como un login y un crud hecho en html, css y js. No entiendo como unirlo al django. Porque la estructura que usas es diferente a la de html de toda la vida.
La documentación oficial menciona esto, a cerca de MTV y MVC:
Al final del día, todo se reduce a hacer las cosas. E, independientemente de cómo se llamen las cosas, Django hace las cosas de la manera más lógica para nosotros.
Esto es un ejemplo de mezclas responsabilidades, cosa que no se debería hacer.
En el caso anterior, si observas bien el código y los posts vinieran de la base de datos estariamos haciendo todo esto en el mismo lugar:
Al realizar una aplicación debemos aislar la forma de:
Para problemas como los anteriores existen los patrones de diseño.
Un patrón de diseño es una solución reutilizable para un problema común, El patrón de diseño más común para el desarrollo web es el Model View Controller
El Controller maneja la lógica del request, sabe que hacer con él, y que template debe mostrar.
El modelo define la estructura de los datos, el acceso a ellos e incluso la validación
La vista se encarga de definir como se van a presentar los datos al usuario
Django implementa algo similar llamado el Model View Template
Cualquier problema lo suficientemente genérico.
El patrón de diseño más común es el Model View Controller , sin embargo, en el caso de Django el enfoque utilizado es el del Model View Template .
Es acertado, aunque quizá no preciso, en decir que Django aplica una especie de Modelo Vista Controlador y que a través de esto podemos generar un desarrollo web previsible y escalable.
El controller, maneja la lógica, igual que las vistas en Django, el model se encarga de definir la estructura de los datos, su accesibilidad y su autenticación, parecido a las vistas de Django. Luego la vista de encarga de presentar los datos en la interfaz. parecido a los templates.
Model Template View, es en Django, la estructura del Model, en la que define la estructara de los datos, es el Template, que hace la presentación de los datos, y el view que se encarga de traer los datos para pasarlos al template.
El Model View Controller, separa la vista o presentación, de la lógica y la lógica de los datos.
MTV Django:
Patrones de diseño: Una solución reutilizable a un problema común
Esos ejemplos de PHP son muy antiguos ya no es asi, ejemplo Laravel tiene sus patrones
Un poco nervioso el tipo.
excelente
Django tiene su propio patron de diseño inspirado en MVC (modelo, vista controlador) implementando un MTV (Modelo, Template, View)
El modelo se encarga de hacer una represntacion de los datos en base de datos de los campos a utilizar en el template.
El Template: Se defininen los campos que se mostrarán en Views.
El View: Toma el template y lo muestra al usuario, captura los datos y los devuelve al template para almacenar en el modelo.
MVC = MODEL VIEW CONTROLLER
MTV = MODEL TEMPLATE VIEW
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.