2009-08-18 3 views
8

Quindi, cosa sta implementando esattamente Django?Confuso dall'affermazione di Django su MVC, cos'è esattamente?

Sembra che ci sono

Models 
Views 
Templates 

modelle = mappature di database

Visualizzazioni = Grab dati rilevanti dalle modelli e formati IT tramite modelli

Templates = visualizzazione HTML a seconda dei dati dato da Views

EDIT: S. Lott si è liberato molto con questo in una modifica a un post precedente, ma mi piacerebbe ancora sentire altri feedback. Grazie!

È corretto? Sembra davvero che Django non sia neanche lontanamente lo stesso di MVC e confonde semplicemente le persone chiamandolo così.

+0

Che cosa significa "post precedente" sull'overflow dello stack? Le cose sono ordinate per voti, non per il tempo. Può fornire un link? O forse qualcosa di più universale di "precedente"? –

+0

Potrebbe per favore indicare quel "post precedente"? Mi piacerebbe dare un'occhiata. –

risposta

15

Gli sviluppatori di Django hanno una visione leggermente non tradizionale sul paradigma MVC. In realtà rispondono a questa domanda nelle loro domande frequenti, che puoi leggere here. Nelle loro stesse parole:

Nella nostra interpretazione di MVC, la "vista" descrive i dati che vengono presentati all'utente. Non è necessariamente come appaiono i dati, ma quali dati vengono presentati. La vista descrive quali dati vedi, non come li vedi. È una sottile distinzione.

Quindi, nel nostro caso, una "vista" è la funzione di callback Python per un particolare URL, poiché tale funzione di callback descrive quali dati sono presentati.

Inoltre, è ragionevole separare il contenuto dalla presentazione, ovvero da dove i modelli entrano. In Django, una "vista" descrive quali dati sono presentati, ma una vista normalmente delega a un modello, che descrive come vengono presentati i dati .

Dove si inserisce il "controller", quindi? Nel caso di Django, è probabilmente lo stesso framework: il meccanismo che invia una richiesta alla vista appropriata, secondo la configurazione dell'URL di Django.