Alguém pode me explicar onde estão as diferenças entre o Django e o padrão Model View Controller?
Funcionalmente, o que podemos esperar dessas diferenças - ou seja, o que funciona de forma diferente comparando Django a, por exemplo, Ruby on Rails?
django
model-view-controller
frameworks
Leonardo
fonte
fonte
Respostas:
De acordo com o Django Book , o Django segue o padrão MVC próximo o suficiente para ser chamado de framework MVC.
Django tem sido referido como um framework MTV porque o controlador é manipulado pelo próprio framework e a maior parte do entusiasmo acontece em modelos, templates e visualizações.
Você pode ler mais sobre MTV / MVC aqui:
O padrão de desenvolvimento MTV (ou MVC)
fonte
O próprio Django FAQ é um bom lugar para começar:
Tenha em mente que “Model View Controller” é apenas um padrão, ou seja, uma tentativa de descrever uma arquitetura comum. Portanto, uma pergunta melhor pode ser “Quão bem o Django se ajusta ao padrão Model View Controller?
fonte
Quando você codifica, sem pensar nos nomes das peças do framework, não há diferenças sustentáveis entre, por exemplo, RoR. Mas depende do uso que você dá
models
, já que no Django eles facilmente contêm alguma lógica que em outros frameworks ficaria no nível do controlador.O
view
no Django tende a ser um conjunto de consultas para buscar dados e passá-los para o modelo.fonte
views
em Django é algo como umcontroller
em MVC e umtemplate
em Django é mais provavelmente umviews
No mvt, uma solicitação de URL é enviada para uma visualização. Esta visualização chama o modelo, executa manipulações e prepara os dados para a saída. Os dados são passados para um Template que é renderizado e emitido como uma resposta. idealmente em estruturas da web, o controlador fica oculto.
É aqui que está a diferença do MVC: no mvc, o usuário interage com a gui, o controlador lida com a solicitação e notifica o modelo e a visualização consulta o modelo para exibir o resultado ao usuário.
fonte