Kleine Helfer

Django - das Python-Framework für Web-2.0-Anwendungen

Diego Wyllie hat Wirtschaftsinformatik an der TU München studiert und verbringt als Softwareentwickler und Fachautor viel Zeit mit Schreiben – entweder Programmcode für Web- und Mobile-Anwendungen oder Fachartikel rund um Softwarethemen.
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.
Django generiert Administrationsoberflächen für die Verwaltung von Inhalten automatisch.
Django generiert Administrationsoberflächen für die Verwaltung von Inhalten automatisch.
Foto: Diego Wyllie

Ursprünglich wurde Django als Content-Management-System für Online-Nachrichtenplattformen konzipiert. 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.

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), das besagt, dass 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, die die gewünschte Funktionalität implementieren. Solche Komponenten können selbstverständlich nach eigenen Bedürfnissen angepasst und erweitert werden.

Datenmodelle lassen sich wiederum komplett in Python definieren. Dazu erhalten Entwickler Zugriff auf eine dynamische Datenbank-API, die 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.

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.

(Teaser: Fotolia, Sergej Seemann, pah)