Einführung

Was ist Django?

Django ist ein in Python geschriebenes Full Stack Framework, dass die schnelle Entwicklung von Web-Applikationen ermöglicht. Dabei wird Wert auf sauberen Code und die Wiederverwendbarkeit der einzelnen Komponenten gelegt.

Benannt wurde das Framework nach dem Gitarristen Jean „Django“ Reinhardt, der als einer der Begründer des europäischen Jazz gilt.

Der Quellcode und die umfangreiche Dokumentation sind unter einer BSD-Lizenz lizensiert. Die Django Software Foundation stellt die Weiterentwicklung von Django sicher.

Rapid Development

Django unterstützt durch seine Architektur und Werkzeuge eine schnelle Entwicklung (Rapid Development) von Websites und neuen Komponenten.

Loose Coupling

Loose Coupling, also die lose Koppelung der verschiedenen Teile des Frameworks und der Applikation, stehen bei Django stark im Vordergrund. Dadurch soll die Qualität und Wiederverwendbarkeit des Codes erhöht werden.

Don’t Repeat Yourself

Das Prinzip Don’t Repeat Yourself (DRY) ist wie folgt definiert:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

http://c2.com/cgi/wiki?DontRepeatYourself

DRY ist damit unter anderem eine Vorraussetzung für Loose Coupling, denn Komponenten lassen sich nur dann gut voneinander separieren, wenn man klar sagen kann welche Aufgaben sie erledigen.

Außerdem erleichtert es die tägliche Arbeit, wenn der Code nicht über verschiedene Teile der Applikation verteilt ist, sondern dort zu finden ist, wo man ihn auch erwarten würde.

Model-Template-View

Django ist nach dem Model-Template-View (MTV) Muster aufgebaut. MTV orientiert sich am bekannten Model-View-Controller Muster (MVC).

Der in Django enthaltene Object Relational Mapper (ORM) überträgt die Models in Datenbankstrukturen und führt alle Operationen in der Datenbank durch. Es können alle gängigen Datenbanken benutzt werden. Alle Models werden in Python geschrieben.

Die Template-Engine unterstützt die Vererbung von Templates und bietet umfangreiche Filter und Templates. Diese können auch selbst erweitert werden.

Der View holt die Daten, zum Beispiel mit Hilfe des Object Relational Mappers. Es können aber auch anderen Datenquellen genutzt werden.

Die URLConf steuert das Routing. Mit Hilfe von regulären Ausdrücken wird der Request dem richtigen View zugewiesen.

digraph request_response {
label = "Schematische Darstellung einer Request / Response Verarbeitung"
{rank=same; "Browser" "Webserver"}
{rank=same; "URLConf" "View"}
"Browser" -> "Webserver" [label="Request"];
"Webserver" -> "URLConf" [label="Request"];
"URLConf" -> "View" [label="Request"];
"View" -> "Model (ORM)" -> "Datenbank"-> "Model (ORM)" -> "View"
"View" -> "Template" [label="Context"];
"Template" -> "Tags & Filter" -> "Template"
"Template" -> "View" [label="HTML"];
"View" -> "Webserver" [label="Response"];
"Webserver" -> "Browser" [label="Response"];
}

Eingebauter Entwicklungs-Webserver

Der in Django enthaltene Entwicklungs-Webserver hilft bei der Entwicklung, da nicht extra ein “vollwertiger” Webserver installiert werden muss.

Die Admin-Applikation

Django stellt mit der Admin-Applikation ein CRUD-Interface bereit, mit dem sich eine Website ohne Aufwand pflegen läßt. Die Admin-Applikation wird mit Hilfe der Models automatisch erstellt.

Inhalt

Vorheriges Thema

Django Workshop

Nächstes Thema

Vorbereitung

Diese Seite