Pregunta Controlador Django vs. Modelo Vista [cerrado]


¿Alguien puede explicarme dónde están las diferencias entre Django y el patrón de Model View Controller?

Funcionalmente, ¿qué podemos esperar de esas diferencias, es decir, qué funciona de manera diferente comparando Django con, por ejemplo, Ruby on Rails?


76
2017-07-08 08:05


origen


Respuestas:


De acuerdo con la Libro Django, Django sigue el patrón MVC lo suficientemente cerca como para llamarse un framework MVC.

Django se conoce como un marco de MTV porque el controlador maneja el controlador y la mayor parte de la emoción se produce en modelos, plantillas y vistas.

Puede leer más acerca de MTV / MVC aquí:

El patrón de desarrollo MTV (o MVC)

Si estás familiarizado con otro MVC   Marcos de desarrollo web, como   Ruby on Rails, puedes considerar Django   vistas para ser el controladores y   Plantillas Django para ser el puntos de vista.

Esta es una desafortunada confusión   provocado por diferentes   interpretaciones de MVC.

En la interpretación de Django de MVC, el ver   describe los datos que se presentan   para el usuario; no es necesariamente solo   cómo se ven los datos, pero qué datos son   presentado.

Por el contrario, Ruby on Rails   y marcos similares sugieren que   el trabajo del controlador incluye decidir   qué datos se presentan al usuario,   mientras que la vista es estrictamente cómo   los datos se ven, no los datos son   presentado.


103
2017-07-08 08:45



Las preguntas frecuentes de Django en sí son un buen lugar para comenzar:

Tenga en cuenta que el "Controlador de vista de modelo" es solo un patrón, es decir, un intento de describir una arquitectura común. Entonces, una mejor pregunta podría ser "¿Qué tan bien encaja Django en el patrón del controlador de vista de modelo?"


18
2017-07-08 08:11



Cuando codifica, sin pensar en los nombres de las piezas del framework, no hay diferencias sospechosas entre ellos, por ejemplo RoR. Pero depende del uso que das models, ya que en Django contienen fácilmente cierta lógica que en otros marcos permanecería en el nivel de controlador.

los view en Django tiende a ser un conjunto de consultas para obtener datos y pasarlos a la plantilla.


10
2017-11-15 15:31



En mvt, una solicitud a una URL se envía a una Vista. Esta vista llama al Modelo, realiza manipulaciones y prepara los datos para la salida. Los datos se pasan a una Plantilla que se representa como una respuesta. idealmente en marcos web, el controlador está oculto a la vista.

Aquí es donde la diferencia es de MVC: en mvc, el usuario interactúa con la interfaz gráfica de usuario, el controlador maneja la solicitud y notifica al modelo y la vista consulta al modelo para mostrar el resultado al usuario.


6
2017-07-08 08:13