Django ist ein sehr beliebtes, in Python geschriebenes Webframework. Es folgt dem MVT (Model-View-Template) Muster. Dieses Muster ist eine Variante des weit verbreiteten MVC (Model-View-Controller) Musters und ermöglicht eine getrennte Entwicklung von Nutzer-Interface und Geschäftslogik.
Im MVT-Muster besteht die zu entwickelnde Web-Anwendung aus drei Hauptkomponenten:
1. Model (Modell): Die Modelleinheit ist verantwortlich für alle Datenzugriffe und definiert die Struktur der Datenbank. Ein Modell in Django ist eine Datenbank-Tabelle und ein Attribut des Modells wird als Feld bezeichnet. Django unterstützt eine Vielzahl von Datenbankfeldtypen sowie Relationen wie One-to-One, One-to-Many und Many-to-Many.
2. View (Ansicht): Eine Ansicht ist eine Anforderung zur Darstellung bestimmter Daten. Sie bestimmt, welche Daten an den Benutzer zurückgegeben werden. In der Darstellung werden die Daten aus dem Modell geholt und in eine Form gebracht, die vom Template verwendet werden kann.
3. Template (Vorlage): Ein Template ist eine HTML-Datei, die Platzhalter für reale Daten und spezielle Syntax für die Behandlung von Logik zur Datenpräsentation enthält. Es definiert, wie die Benutzeroberfläche dargestellt werden soll.
Jedes dieser drei Komponenten hat eine spezifische Aufgabe und arbeitet unabhängig voneinander, was die Entwicklung, Änderung und Fehlersuche erleichtert. Sie kommunizieren miteinander, um eine komplette Arbeitsanwendung zu erstellen.
Ein Beispiel für ein Django-Projekt, das das MVT-Muster verwendet, könnte so aussehen:
- Ein Modell könnte eine Datenbanktabelle für Benutzerprofile sein, die Felder für Dinge wie E-Mail, Name, Alter und so weiter hat.
- Eine Ansicht könnte eine Anforderung sein, die Profilinformationen eines bestimmten Benutzers anzuzeigen.
- Ein Template könnte dann die HTML-Struktur haben, die bestimmt, wie diese Benutzerinformationen auf der Seite platziert werden sollen.
Quellen:
- Django-Unterlagen (https://docs.djangoproject.com/)
- MDN Web Docs (https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django)
- InformIT Artikel, “Understanding Django: Python Web Development” (http://www.informit.com/articles/article.aspx?p=2420234)