2009-08-18 18 views
8

Czym dokładnie jest implementacja Django?Zmieszany przez roszczenia Django do MVC, co to jest dokładnie?

Wygląda istnieją

Models 
Views 
Templates 

Modele = mapowań Database

Widoki = Grab odpowiednie dane z modeli i formatów go za pomocą szablonów

Szablony = wyświetlania HTML w zależności od danych podane przez widoki

EDYCJA: S. Lott dużo poprawił to w edycji poprzedniego posta, ale nadal chciałbym usłyszeć inne opinie. Dzięki!

Czy to prawda? Wygląda na to, że Django nie jest tak blisko MVC i po prostu myli ludzi, nazywając to.

+0

Co oznacza "poprzedni post" w przypadku przepełnienia stosu? Rzeczy są uporządkowane według głosów, a nie czasu. Czy możesz podać link? A może coś bardziej uniwersalnego niż "poprzednie"? –

+0

Czy możesz wskazać ten "poprzedni wpis"? Chciałbym to sprawdzić. –

Odpowiedz

15

Twórcy Django mają nieco nietradycyjny pogląd na paradygmat MVC. W rzeczywistości odpowiadają na to pytanie w swoich często zadawanych pytaniach, które można przeczytać pod numerem here. Własnymi słowami:

W naszej interpretacji MVC, "widok" opisuje dane, które są prezentowane użytkownikowi. Niekoniecznie wygląda to, ale dane są prezentowane. Widok opisuje, jakie dane widzisz, a nie jak je widzisz. To subtelne rozróżnienie.

W naszym przypadku "widok" to funkcja wywołania zwrotnego Pythona dla określonego adresu URL, ponieważ ta funkcja wywołania zwrotnego opisuje, które dane są prezentowane.

Ponadto rozsądne jest oddzielenie treści od prezentacji - czyli miejsca, w których pojawiają się szablony. W Django "widok" opisuje, które dane są prezentowane, ale widok zwykle deleguje do szablonu, który opisuje sposób prezentacji danych .

Gdzie znajduje się "kontroler", a następnie? W przypadku Django to prawdopodobnie sama struktura: maszyna, która wysyła żądanie do odpowiedniego widoku, zgodnie z konfiguracją adresu URL Django.