Django-Einsteig, Diskussion, Neues in 1.3
- Author
- Oliver Frietsch
Zusammenfassung
Django Session auf dem Python Barcamp 2011 (Oliver)
- Einführung in Django (einige kennen Django noch gar nicht)
- Model-View-Controller , ORM-Mapping,
- Beispiel-Projekt: einfache Konten-Verwaltung
- Model definiert Schema, Django generiert DB-Tables
Bei Modell-Änderung ist entweder Handarbeit angesagt - oder man nimmt "South" http://south.aeracode.org/
- Template-Engine von Django: Features (iteratoren, I18N, Vererbung, ...)
Beispiel-code kann von Homepage geladen werden: http://www.oliver-frietsch.de/pycamp/
Neuerungen in Django 1.3
Neu sind sog. class-based (generic) Views. Vorher waren views nur Funktionen, was den code unübersichtlich und schwer wartbar macht.
Basisklassen sind etwa TemplateView oder ListView. Dadurch wird OO-Style Entwicklung von Views möglich.
Zum Anlegen und Bearbeiten von Objekten gibt es UpdateView und CreateView.
Neuer Shortcut neben "render_to_response" ist "render(request)" - legt automatisch RequestContext an.
I18N: Übersetzungen können im Kontext unterschiedlich definiert werden.
Direkte Unterstützung von Python Logging.
Diskussion
Frage: Kann man die Template-Engine von Django austauschen? Antwort: Ja, geht über TemplateLoader in der config.
Hinweis: man kann die Template-Engine von Django auch "standalone" ausserhalb von Django-Framework verwenden.
Frage: kann man ORM austauschen? Antwort: Ja, aber dann muss man auch auf einige Features (backend-support) verzichten -- und kann auch direkt mit Pyramid oder Flask arbeiten!
Hinweis: neben Django-Framework (und DB-Backend) wird die Verwendung von "South" für die Entwicklung dringend empfohlen.
Ausserdem wird der Django-Devserver (auf github) für Entwicklungszwecke empfohlen, da der eingebaute Devserver nur single-threaded ist (und unter Windows gerne "hängt"). https://github.com/dcramer/django-devserver
Links zur 1.3 (release notes): http://docs.djangoproject.com/en/dev/releases/1.3/