No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Patrones de dise帽o y Django

10/37
Recursos

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

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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.

El MVC no es un patr贸n de dise帽o, es un patr贸n de arquitectura.

Model


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.

Template


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.

View


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鈥搗ista鈥揷ontrolador
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.

Contexto

  • 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:

    • Hacer la conexi贸n a la base de datos (el modelo)
    • Estructurar el contenido que queremos renderizar del modelo (la vista)
    • Construir el template para renderear (template)
    • Renderearlo

Al realizar una aplicaci贸n debemos aislar la forma de:

  • Traer los datos
  • Actualizar los datos
  • Estructurar los datos
  • Presentar los datos

Apuntes claves

驴Qu茅 diablos son los patrones de dise帽o?

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

驴Qu茅 resuelven los patrones de dise帽o?

Cualquier problema lo suficientemente gen茅rico.

Los patrones de dise帽o en el caso de Django

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 .

  • Model define la estructura de los datos.
  • El Template es la l贸gica de presentaci贸n de los datos
  • El View es el encargado de traer los datos y pasarlos al template.

Conclusi贸n

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