Czy ktoś może mi wyjaśnić, gdzie występują różnice między Django a wzorcem kontrolera widoku modelu?
Czego możemy się spodziewać pod względem funkcjonalnym po tych różnicach - tj. Co działa inaczej w porównaniu na przykład z Django do Ruby on Rails?
django
model-view-controller
frameworks
Leonardo
źródło
źródło
Odpowiedzi:
Zgodnie z Django Book , Django na tyle ściśle podąża za wzorcem MVC, że można go nazwać frameworkiem MVC.
Django jest określane jako framework MTV, ponieważ kontroler jest obsługiwany przez samą strukturę, a większość emocji dzieje się w modelach, szablonach i widokach.
Możesz przeczytać więcej o MTV / MVC tutaj:
Wzorzec programistyczny MTV (lub MVC)
źródło
Samo FAQ Django jest dobrym miejscem do rozpoczęcia:
Należy pamiętać, że „Model View Controller” to tylko wzorzec, czyli próba opisu wspólnej architektury. Więc lepszym pytaniem może być „Jak dobrze Django pasuje do wzorca kontrolera widoku modelu?”
źródło
Kiedy kodujesz, nie myśląc o nazwach fragmentów frameworka, nie ma istotnych różnic między, na przykład RoR. Ale to zależy od tego, jak dasz użytek
models
, ponieważ w Django z łatwością zawierają pewną logikę, która w innych frameworkach pozostałaby na poziomie kontrolera.view
Na Django wydaje się być zbiorem zapytań dla danych pobierania i przekazać je do szablonu.źródło
views
w Django jest czymś w rodzaju acontroller
w MVC, a atemplate
w Django jest bardziej prawdopodobne aviews
W mvt żądanie adresu URL jest wysyłane do widoku. Ten Widok wywołuje Model, wykonuje manipulacje i przygotowuje dane do wyjścia. Dane są przekazywane do szablonu, który jest renderowany jako emitowany jako odpowiedź. najlepiej w frameworkach internetowych kontroler jest niewidoczny.
Tutaj różnica jest z MVC: w mvc użytkownik współdziała z GUI, kontroler obsługuje żądanie i powiadamia model, a widok wysyła zapytanie do modelu, aby wyświetlić wynik użytkownikowi.
źródło