Erste Gehversuche mit Django

11. Mai, 2007

In diesem Post dokumentiere ich meine ersten Erfahrungen mit Django. Und zwar mit einer richtigen Applikation und nicht einem Hello World Programm oder einem dieser 20 Minuten Wikis. Das Äquivalent zu "Hello World" in einem Framework ist meistens denkbar einfach - aber wie steht es mit einer der typischen Anfänger-Applicationen?

Also nach "Hello World" - in einem Web Framework? Den Tutorials zur Folge haben wir die folgenden Möglichkeiten:

  • Umfragen (Poll)
  • Blog
  • ToDo - List

Ich hab' mich offensichtlich für ein Blog entschieden - den ganzen Web-Applikation in 20 Minuten Screencasts zur Folge ist das gar kein Problem ... bzw. schon integriert im Framework. Tatsächlich sind solche Technologie Werbungen aber ziemlich ärgerlich, wenn man dann sich daran macht eine solche Applikation tatsächlich und gut umzusetzen.

Die ersten Schritte

Leider habe ich am Anfang nicht auf die Zeit geachtet. Aber im Prinzip habe ich die letzten drei Tage mit Tutorials und Prototypen verbracht. (Ich war auch für ca. 2 Stunden durch ein Liebäugelei mit TurboGears abgelenkt ...)

Ich veranschlage daher mal ca. 10 Stunden für das Basis-Skelett des Blog-Systems und die Zeit die ich brauchte um mich in das Entwicklungsmodel reinzudenken.

  • markdown --- um die Posts Klartext editieren zu können.
  • colorchooser --- um die Farbgebung ohne Hilfe einers Designers nicht komplett zu versauen.

Fazit: 10 Stunden

Kommentare

Das 'free_comments' System von Django ist einfach zu benutzen, extrem simple gestrickt und völlig unzureichend - das andere 'comments' Framework (oder Applikation?) erfordert eine Registrierung und nirgends dokumentiert. Schön für Kaplan und co., wenn das auf den LJWorld.com Seiten gut funktioniert - aber im Endeffekt musste ich mein eigenes Kommentar-System implementieren.

Umgesetzt wurde ein sehr einfaches Anmeldungs-Freies System mit Captchas und ohne jeglichen fancy stuff

Fazit: +3 Stunden.

Flat Pages / Statischer Inhalt

Ich habe mir überlegt, dass ich über das Admin Interface einfach Dateien unter der URL /static unterbringen kann, auf die ich dann in den Blog Einträgen verlinke. Code-Beispiele, PDFs oder einfach ein paar Bilder. Das flatpages Modul von Django erscheint mir dafür nicht passend, da ich keinen mimetype angeben kann. Deren Hintergrund ist aber auch eine Seite mit erheblich mehr Traffic, daher lohnt es sich alles über einen statischen Web Server zu erledigen - für mich ist's ein wenig unbeqeuem - also eigenes Static Pages System ---

ToDo:

  • FF öffnet die Dateien immernoch falsch
  • local: Protokol wird noch nicht durch http: ersetzt.

Fazit: +3 Stunden

Installation

Damit ist die Installation auf einem richtigen Server mit mod_python und apache2 gemeint - was sich als erheblich schwieriger herausstellte als gedacht - auf dem Server lief Breezy, so dass ich python-mysqldb mit exakt der richtigen Version nachinstallieren musste... Und dann kamen andauernd segfaults in mod_python - Schuld war natürlich PHP. Ja, kein Scherz.

Fazit: +3 Stunden

Bugs und unerwartetes Verhalten

Im großen und ganzen verhält sich Django sehr robust, selbts gegen die übelsten Verstöße. Bisher verwende ich zwar nur eine sqlite3 Datenbank, aber sensible Daten (d.h. ein Backup würde Stunden dauern ...) würde ich Django auch anvertrauen.

Unerwartete Exceptions: 3 (2 mal in admin, 1 mal free_comments)

Kommentare

#1 Juli 16, 2007 macdet um 14:11:

danke!

Kommentieren


Die Letzten Zwanzig

Links im Artikel