Webentwicklung mit Django
Sturmritt
Das Geizen mit Entwicklungszeit ist das erklärte Ziel des Webframeworks Django. Es enthält leistungsfähige Automationen und reizt das Don't-repeat-yourself-Prinzip voll aus.
© Cheryl Ann Quigley, Fotolia.com
Das Geizen mit Entwicklungszeit ist das erklärte Ziel des Webframeworks Django. Es enthält leistungsfähige Automationen und reizt das Don't-repeat-yourself-Prinzip voll aus.
Wie zügig sich die Programmieraufgaben des Linux-Magazin-Wettbewerbs aus Heft 10/08 mit dem High-Level-Python-Framework Django lösen lassen, hat Entwickler Douglas Napoleone für das Linux-Magazin auf Video dokumentiert ([1], [2]). Das Rapid-Application-Development-Kit entstand 2003 als internes Projekt der World Company, eines News- und Multimediaportals in Kansas [3]. Die Firma gab das Kit im Sommer 2005 als Open-Source-Software frei. Im September 2008 erreichte Django Version 1.0.
Django enthält einen Object-Relational-Mapper, der vom eingesetzten Datenbank-Backend abstrahiert. SQL steht als Alternative trotzdem zur Verfügung. Ein Administrations-Interface, das beispielsweise die Benutzer einer Django-Anwendung verwaltet, liegt fertig bei. Anders als bei vielen Webframeworks ist bei Django das Mapping der URLs auf Sprachobjekte nicht festgelegt. Der Entwickler definiert es vielmehr mit regulären Ausdrücken. So erhält der Besucher aussagekräftige Internetadressen, ohne dass sich für die Software-Achitektur daraus Einschränkungen ergeben. Eine erweiterbare Template-Sprache trennt Anwendungslogik und Seitengestaltung.
Django bindet außerdem Memcached oder andere Cache-Lösungen ein. Ein Syndikation-Framework erleichtert das Erzeugen von RSS und Atom-Feeds, die Sprachunterstützung bietet neben Übersetzungs-Strings auch Einhängepunkte für sprachspezifische Funktionen.
Seit einigen Jahren gilt das Model-View-Controller-Pattern als der Königsweg in der Webentwicklung. Dabei sorgt die Model-Rolle für Daten und Informationen, die View-Rolle übernimmt die Anzeige, die Controller-Komponente ist dagegen für die Interaktion mit dem Benutzer zuständig. Django setzt das MVC-Design um, lediglich bei der Terminologie erlaubt es sich Freiheiten: Controller heißen Views, die Views Templates.
Die Entwicklung einer Webanwendung mit Django folgt meist einem festen Schema (Abbildung 1): Anfangs erstellt der Entwickler, unterstützt von Skripten, das Gerüst. Dann definiert er über Python-Objekte Models. Die externe Datenbank bringt Django dann automatisch auf den aktuellen Stand. URL-Mapper und Views legen schließlich fest, wie die Webanwendung auf bestimmte URLs reagiert, Templates sorgen für das Design.
Abbildung 1: Aus der Architektur des Django-Framework ergibt sich bei der Entwicklung ein typischer Workflow.
Für Django gibt es ein plattformunabhängiges Paket [4]. Für die Entwicklung steht damit ein leichtgewichtiger Webserver bereit. Auf Produktivsystemen läuft Django mit dem Apache-Modul »mod_python« [5], eine detaillierte Installationsanleitung bietet [6].
Alle Rezensionen aus dem Linux-Magazin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...