¿Alguien puede explicarme dónde están las diferencias entre Django y el patrón 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?
django
model-view-controller
frameworks
Leonardo
fuente
fuente
Respuestas:
Según el Libro de Django , Django sigue el patrón MVC lo suficientemente de cerca como para ser llamado un marco MVC.
Se ha hecho referencia a Django como un marco MTV porque el controlador lo maneja el marco mismo y la mayor parte de la emoción ocurre en los modelos, plantillas y vistas.
Puede leer más sobre MTV / MVC aquí:
El patrón de desarrollo de MTV (o MVC)
fuente
Las preguntas frecuentes de Django en sí mismas son un buen lugar para comenzar:
Tenga en cuenta que “Model View Controller” 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 se ajusta Django al patrón Model View Controller?"
fuente
Cuando codifica, sin pensar en los nombres de las piezas del marco, no hay diferencias sustanciales entre, por ejemplo, RoR. Pero depende del uso que le des
models
, ya que en Django fácilmente contienen alguna lógica que en otros frameworks se quedaría a nivel de controlador.El
view
en Django tiende a ser un conjunto de consultas para obtener datos y pasarlos a la plantilla.fuente
views
en Django es algo así como acontroller
en MVC y atemplate
en Django es más probable aviews
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 su salida. Los datos se pasan a una plantilla que se procesa y se emite como respuesta. idealmente en frameworks web, el controlador está oculto a la vista.
Aquí es donde está la diferencia con 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 el modelo para mostrar el resultado al usuario.
fuente