Überblick MVC im Detail Live-Demo Django - ein Python Web-Framework Daniel Klaffenbach 31. Mai 2011 Daniel Klaffenbach Django - ein Python Web-Framework Wie geht es weiter? Überblick MVC im Detail Inhaltsverzeichnis 1 Überblick Was ist Django Merkmale Anforderungen 2 MVC im Detail Model Controller View 3 Live-Demo 4 Wie geht es weiter? Daniel Klaffenbach Django - ein Python Web-Framework Live-Demo Wie geht es weiter? Überblick MVC im Detail Live-Demo Wie geht es weiter? Was ist Django Was ist Django? quelloffenes Web-Framework (BSD-Lizenz) ermöglicht rapid Development folgt dem MVC Pattern ursprünglich entwickelt, um die Nachrichtenseite Lawrence ” Journal-World“ zu verwalten Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Wie geht es weiter? Merkmale Features und Merkmale objektrelationaler Mapper Template-Engine Caching System Internationalisierung flexible Formularverarbeitung integrierter, leichtgewichtiger Webserver zur Entwicklung automatisch generierte Admin-Oberfläche Management-Shell Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Anforderungen Anforderungen Python ab Version 2.4 Unterstützte Datenbanken: MySQL Oracle PostgreSQL SQLite weitere über inoffizielle Backends Webserver Webserver mit WSGI Unterstützung (z.B. Apache mit mod wsgi) Webserver mit FastCGI/SCGI Unterstützung Daniel Klaffenbach Django - ein Python Web-Framework Wie geht es weiter? Überblick MVC im Detail Live-Demo Wie geht es weiter? Model Model objektorientierte Repräsentation eines Datensatzes aus der Datenbank kapselt Daten bietet Operationen auf den Daten an beinhaltet die Geschäftslogik Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Wie geht es weiter? Model Ein Model in Django c l a s s B l o g P o s t ( m o d e l s . Model ) : pub date = models . DateTimeField ( ) h e a d l i n e = m o d e l s . C h a r F i e l d ( m a x l e n g t h =255) text = models . T e x t F i e l d ( ) author = models . ForeignKey ( User ) Liste möglicher Felder siehe Online-Dokumentation Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Wie geht es weiter? Controller Controller Als Controller kann das gesamte Framework betrachtet werden wichtiger Bestandteil: URL-Config mit Hilfe von regulären Ausdrücken werden URLs auf View-Funktionen gemappt URLs basieren nicht auf Ordernstruktur → ermöglicht schöne“ und logische URLs ” Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Wie geht es weiter? Controller URL-Config from d j a n g o . c o n f . u r l s . d e f a u l t s import p a t t e r n s , u r l urlpatterns = patterns ( ’ ’ , #Web Root u r l ( r ’ ˆ $ ’ , ’ MeinBlog . b l o g . v i e w s . i n d e x ’ ) , #A n z e i g e e i n e s E i n t r a g e s z . B . / v i e w /12/ u r l ( r ’ v i e w / ( \ d+)/ $ ’ , ’ MeinBlog . b l o g . v i e w s . s h o w b l o g p o s t ’ ) , ) Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Wie geht es weiter? View View Script Python-Callback-Funktion für eine bestimmte URL Aufgaben: Auswahl der Informationen, die dargestellt werden sollen Aufarbeitung der bereitzustellenden Daten Übergabe der aufbereiteten Daten i.d. Regel an ein HTML-Template Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Wie geht es weiter? View View Script from b l o g . m o d e l s import B l o g P o s t from d j a n g o . s h o r t c u t s import g e t o b j e c t o r 4 0 4 , render to response def s h o w b l o g p o s t ( r e q u e s t , p o s t i d ) : p o s t = g e t o b j e c t o r 4 0 4 ( B l o g P o s t , i d=p o s t i d ) r e t u r n r e n d e r t o r e s p o n s e ( ’ v i e w p o s t . html ’ , { ’ b l o g p o s t ’ : post , } ) Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Wie geht es weiter? View HTML-Template <h1>{{ b l o g p o s t . h e a d l i n e }}</h1> <p> <em>V e r o e f f e n t l i c h t am {{ b l o g p o s t . p u b d a t e }} von {{ b l o g p o s t . a u t h o r }}</em> <b r /> {{ b l o g p o s t . t e x t }} </p> Daniel Klaffenbach Django - ein Python Web-Framework Überblick MVC im Detail Live-Demo Ziel Erstellung eines einfachen Blogs Daniel Klaffenbach Django - ein Python Web-Framework Live-Demo Wie geht es weiter? Überblick MVC im Detail Live-Demo Schritte 1 Installation von Django 2 Anlegen eines neuen Projektes 3 Anlegen einer Anwendung im Projekt 4 Konfigurieren des Projektes 5 Beschreibung der benötigten Modelle 6 Erkundung Admin-Oberfläche 7 Anlegen eines View-Scriptes und HTML Templates 8 Anpassen der URL Konfiguration Daniel Klaffenbach Django - ein Python Web-Framework Wie geht es weiter? Überblick MVC im Detail Live-Demo Wie geht es weiter? Wie geht es weiter? Projektseite: http://www.djangoproject.com/ Dokumentation: http://docs.djangoproject.com/en/1.3/ Django-Buch: http://www.djangobook.com/en/2.0/ Holovaty, Kaplan-Moss: The Definitive Guide to Django, ISBN: 978-1-430-21937-8 Daniel Klaffenbach Django - ein Python Web-Framework