Inhaltsverzeichnis. Einleitung

Inhaltsverzeichnis Einleitung 11 1 Rapid Web Development 13 1.1 1.2 1.3 Alle reden von Web 2.0 Was ist ein Web-Development-Framework? Die zentra...
Author: Helmut Graf
2 downloads 0 Views 374KB Size
Inhaltsverzeichnis Einleitung

11

1

Rapid Web Development

13

1.1 1.2 1.3

Alle reden von Web 2.0 Was ist ein Web-Development-Framework? Die zentralen Komponenten von TurboGears Python Kid-Templating CherryPy SQLObject Weitere Komponenten Installation Python Eggs Python Package Index (Python Cheeseshop) Easylnstall Installation mit Easylnstall

13 13 14 14 15 15 16 16

1.5

Literatur

20

2

Grundlagen der Web-Programmierung mit Python

21

2.1 2.2

Was ist ein Protokoll? URIundURL

21 22

2.3

DasHTTP-Protokoll Startzeile einer Anfrage (Initial Request Line) Startzeile einer Antwort (Initial Response Line) Header Serverseitige Web-Programmierung mit Python Ein einfacher HTTP-Server Zugriff auf statische Ressourcen CGI-Skripte CGI-Skripte auf einem lokalen Rechner testen CGI-Skripte auf einem Rechner mit Internetkonnektivität installieren Übergabe von Daten an das CGI-Skript

23 24 24 24

1.4

2.4

16 17 17 18 19

Cookies

2.5

Beispiel: Besuchszähler CGI-Skripte debuggen Clientseitige Programmierung Zugriff auf Ressourcen - das Modul urllib

37 37

Rapid Web Development mit Python

Bibliografische Informationen http://d-nb.info/983736243

25 25 26 27 29 29 30 34 35 37

digitalisiert durch

Inhaltsverzeichnis

2.6

E-Mails senden mit SMTP Referenz HTTP CGI smtplib

40

2.7

Literatur

43 43 44 45 46

3

CherryPy

47

3.1 3.2

Idee, Geschichte, Versionen und Installation Einführendes Beispiel

47 47

3.3

Der Controller-Baum

51

3.4

3.5

Übergabe von Daten Daten aus einem HTML-Formular übergeben Daten in einem Pfad übergeben - die Methode default() Konfiguration Einführendes Beispiel: Wie ändert man den Port des Servers? Aufbau der Konfiguration Entwicklungsmodus und Produktionsmodus

3.6

Filter

53 54 56 60 60 61 62 63

3.7

Statische HTML-Seiten (staticjilter) Mehrere Filter für statische Seiten Eine einzige statische HTML-Seite für mehrere URLs (static_filter.file)

63 66 67

3.8

Persistenz von Sitzungsdaten Speichern von Sitzungsdaten in Formularen Nutzung des Session-Objekts Konfiguration des Session-Managements Abbruch einer Session Dateien hochladen

68 68 71 73 77 77

3.9

3.10 XML-RPC Anfrage Ein CherryPy-Server für XML-RPCs Das Python-Modul xmlrpclib 3.11 Zugriff auf die HTTP-Header einer Anfrage (Request)

80 80 81 81 84

3.12 Zugriff auf die HTTP-Header einer Antwort (Response) 3.13 Der Quiz-Server - die Minimalversion Das MVC-Pattern (Model View Controller) Der Projektordner Model View Controller

85

3.14 Referenz Konfiguration

87 89 90 C\C\ 90 93 96 101 101

Inhaltsverzeichnis

cherrypy.request cherrypy.response Änderungen bei CherryPy 3.0 3.15 Literatur

103 103 103 104

4

Object Relational Mappinq (ORM)

105

4.1

105 106 108 108 108 109 111 112 113 115 115 118 119 120 123 125 127 131 135 137 138 140 140

4.7

Grundlagen relationaler Datenbanken Vom ER-Diagramm zum Relationenschema Eine MySQL-Datenbank erstellen Installation und Start des MySQL-Servers Login User einrichten Tabellen anlegen Datensätze einfügen Anfragen an eine SQL-Datenbank Anbindung eines Python-Programms an eine MySQL-Datenbank Verändern einer Tabelle Daten abfragen ORM mit SQLObject Abbildung einer Klasse durch eine Tabelle Objekte erzeugen und verändern Implementierung von l:n-Beziehungen (one to many) Implementierung von n:m-Beziehungen (many to many) Anfragen (Queries) SQLObject-Klassen erweitern SQL-Metadaten Quiz-Server Referenz MySQL Verarbeitung von zeitbezogenen Daten mit dem Python-Modul datetime SQLObject Literatur

5

Gestaltung der Präsentation

5.1

CSS-Stylesheets Stildeklarationen verwenden Stile für unterschiedliche Ausgabemedien Formate für HTML-Elemente deklarieren Klassen - das Attribut class Dekorative Hyperlinks Individualformate - das Attribut id Bedingte Formate Schriftgestaltung Absolute und relative Größenangaben

147 147 148 150 151 152 154 155 157 158 160

4.2

4.3

4.4

4.5 4.6

Rapid Web Development mit Python

141 142 145

Inhaltsverzeichnis

5.2

5.3

Eine Präsentation für den Quiz-Server Vorbereitung Statische Elemente - die CSS-Datei Gemeinsam verwendete Elemente - Match-Templates und Template-Funktionen Templates für die Webseiten Das Präsentationsmodul (view.py)

5.4

Referenz CSS Kid

5.5

Literatur

6

TurboGears Eine erste Anwendung mit tg-admin quickstart Das Projekt anlegen Die Struktur des Projektordners Den Server starten Die Grundstruktur modifizieren und verstehen

6.1

)

Farben Layout: Positionen, Abstände und Rahmen Templating mit Kid Einführendes Beispiel XHTML Template-Objekte erzeugen und serialisieren Einbettung von Python-Programmblöcken (PIs) Substitution von Ausdrücken Dynamisch erzeugter Text-Inhalt von XML-Elementen (py:replace, pyxontent) Bedingte Darstellung (py:if, py:strip) Dynamische Attribute Template-Funktionen (py:def) Match-Templates (py:match) Wiederverwendung von Template-Komponenten (py:extends) Layout-Templates (pydayout) Reihenfolge der Verarbeitung von py:-Attributen Funktionen Präsentationsalgorithmik und MVC

6.2

Präsentationsmanagement Das Master-Template Anwendungsbeispiel

6.3

Modellmanagement Beispielprojekt: Modellierung von Marathonläufen Vorbereitung des Datenbanksystems Die Konfiguration modifizieren Das Modell definieren

164 164 172 172 174 176 178 181 183 185 188 190 193 196 198 200 200 203 207 207 208 210 211 218 219 219 223 224 225 225 226 227 228 230 232 233 236 239 239 24U 24U r\A-t

'

•••



1

cntvncKter.prtss 1

Inhaltsverzeichnis Tabellen erzeugen und löschen mit tg-admin sql Den Zustand des Modells manipulieren mit tg-admin shell Die Datenbank manipulieren mit CatWalk Das Modell in das Projekt integrieren

241 243 243 245

6.4

Logging

254

6.5

Sprünge in Controller-Methoden - redirect()

256

6.6

Validierung und Behandlung von Eingabefehlern

258

6.7

Identitätsmanagement Einführendes Beispiel Das Identitätsmanagement im Controller anwenden Das Identitätsmanagement in Kid-Templates anwenden

267 268 277 278

6.8

Juristische Vorgaben für den Betrieb einer Web-Plattform

279

6.9

Das K-Quiz mit TurboGears Analyse Projekt anlegen und Datenbank vorbereiten Modell Das gemeinsame Stylesheet Allgemeiner Aufbau des Moduls controller.py Startseite und Anwendungsfälle „ Login" und „ Logout" Anwendungsfall „Quiz spielen" Anwendungsfall „Registrieren" Anwendungsfall „Aufgabe editieren" Anwendungsfall „Aufgaben entfernen"

280 280 281 282 285 288 290 295 300 304 308

6.10 Das Projekt auf einem Produktionsserver veröffentlichen Konfigurationsdateien Die Projekte hochladen Die Datenbank auf dem Produktionsserver vorbereiten Den Server starten Ein Python-Egg für das Projekt erzeugen Das Python-Egg des Projekts auf dem Produktionsserver installieren

312 313 313 314 314 315 315

6.11

Referenz tg-admin Funktionen Validatoren

316 316 316 317

6.12

Literatur

318

Stichwortverzeichnis

319

Rapid Web Development mit Python