Django: Das Python-Framework für Web-2.0-Apps

13.01.2011

Als Python-Gegenstück zum populären Ruby-on-Rails-Framework erfreut sich die quelloffene Web-Lösung "Django‚Äù aufgrund ihrer Einfachheit und Flexibilität zunehmender Beliebtheit.

Ursprünglich wurde Django als Content-Management-System für Online-Nachrichtenplattformen geplant. Wie die Macher des Frameworks erklären, waren bei der Konzeption deshalb zwei Dinge wichtig: die hohen Anforderungen von Web-Entwicklern zu erfüllen und vor allem Deadlines einhalten zu können. So entstand ein einfach zu bedienendes und flexibles Framework, mit dem sich Web-Seiten in kürzester Zeit erstellen lassen sollen.

Automatisierte Verwaltung

Die Lösung ist wie üblich nach dem Model-View-Controller-Muster (MVC) aufgebaut und folgt dem so genannten DRY-Prinzip (Don‚Äôt Repeat Yourself), dem zufolge Redundanzen im Code vermieden oder zumindest reduziert werden sollen. Aus diesem Grund wurde mit dem Framework das Ziel verfolgt, so viele Aufgaben wie nur möglich zu automatisieren. Im Ergebnis können sich Entwickler die mühsame und nicht sonderlich kreative Arbeit ersparen, Frontends zur Verwaltung von Inhalten (Hinzufügen, Ändern, Auflisten etc.) selbst zu implementieren. Django erledigt dies selbst, indem es Administrationsoberflächen für jedes Objekt im Datenmodell automatisch generiert (siehe Screen). Dabei erzeugt das Tool entsprechende HTML-Formulare, mit denen die Daten manipuliert werden können, inklusive Buttons zum Speichern, Aktualisieren oder Löschen, je nachdem, welche Funktion implementiert werden soll. Solche Komponenten können selbstverständlich nach eigenen Bedürfnissen angepasst und erweitert werden.

Objektrelationales Mapping

Datenmodelle lassen sich wiederum komplett in Python definieren. Dazu erhalten Entwickler Zugriff auf ein dynamisches Datenbank-API, das ein eigenes objektrelationales Mapping (ORM) implementiert, ähnlich wie die unter Java-Entwicklern beliebte Hibernate-Lösung. Eine mächtige und flexible Template-Engine sowie Cache- und Internationalisierungs-Module runden das Funktionsspektrum des Frameworks ab. (Diego Wyllie, München, wyllie@muensolutions.com)

CW-Fazit: Django gehört heute zu den wichtigsten Web-Frameworks, die die schnelle und effiziente Entwicklung von Web-2.0-Anwendungen erlauben. Wer eine Alternative zu Java Enterprise, .NET oder Ruby on Rails sucht, wird mit dieser flexiblen und mächtigen Lösung fündig.