Rapid Web Development mit Python



Ähnliche Dokumente
Inhaltsverzeichnis. Einleitung

Jochen Bartlau. List & Label. schnell + kompakt

Praxiswissen TYPO3 CMS 7 LTS

Konfigurationsmanagement mit Subversion, Ant und Maven

Dominik Schadow. Java-Web-Security. Sichere Webanwendungen mit Java entwickeln

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Praxisbuch BI Reporting

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen

Microsoft Office:mac 2011 Das Grundlagenbuch: Home and Student

Windows 8. Tipps & Tricks. Das Franzis Praxisbuch. 288 Seiten Windows-8- Insiderwissen. Christian Immler. Schnelle Lösungen für Windows-8-Probleme

LOG-FT BAG Filetransfer zum Austausch mit dem Bundesamt für Güterverkehr (BAG) Kurzanleitung

OP-LOG

Herzlich willkommen im Modul Web-Engineering

Das Google Analytics-Buch. Cathrin Tusche

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: installcentos.odt

JSP und Servlet Programmierung

Copyright (C) Open Source Press

Inhaltsverzeichnis. 1 Hallo 13

Redaktions-Schulung. Redaktionssystem der Kunstuniversität Linz 12. Oktober Daniel Hoschek & Ralph Zimmermann

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Software modular bauen

Wie richten Sie Ihr Web Paket bei Netpage24 ein

PHP-Schwachstellen und deren Ausnutzung

Django - ein Python Web-Framework

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

Samsung Galaxy S4 Buch

VMware vrealize Automation Das Praxisbuch

Web 2. Gang. Python User Group Köln Christopher Arndt

Templates für Joomla! 1.6

Lehrveranstaltung Grundlagen von Datenbanken

Kurzeinführung Excel2App. Version 1.0.0

... über OGVIT GmbH & Co. KG

Externe Authentifizierung. Externe Authentifizierung IACBOX.COM. Version Deutsch

K. Hartmann-Consulting. Schulungsunterlage Outlook 2013 Kompakt Teil 1

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

How-to: Webserver NAT. Securepoint Security System Version 2007nx

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Teamschool Installation/ Konvertierungsanleitung

Inhaltsverzeichnis VII

Installation der kostenlosen Testversion

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

3D-Architektur-Visualisierung

Alerts für Microsoft CRM 4.0 Server

IT-Service-Management mit ITIL 2011 Edition

Flash, Network und Facebook. Steven Mohr

K.-H. Bichler Das urologische Gutachten

Webseiten entwickeln mit ASP.NET

Inhalt. Vorbemerkungen... 1

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Content Management mit Joomla! 1.7 für Kids Hanke

Dipl.-Inform. Sven Röpstorff Dipl.-Kaufm. Robert Wiechmann

Mike Burrows Übersetzer: Florian Eisenberg Wolfgang Wiedenroth

desk.modul : WaWi- Export

Die Computerwerkstatt

Ablauf. Festigung des Gelernten Login und Struktur. Umgang mit Plugins: Ändern persönl. Einstellungen. Fachgebietslogo einfügen Anlegen neuer Seiten

Transit/TermStar NXT

Web-Apps mit jquery Mobile

Ablauf. Redaktions-Schulung. Schulungs Unterlagen. Typo3

Administrator-Anleitung

Inhaltsverzeichnis. Vorwort... 5 Grußwort von Safe Software Inc Über den Herausgeber Über die Autoren Einleitung...

Am Selbstbedienungsterminal eigene Dokumente drucken

Infopark CMS Fiona. Fiona Release Notes

WebSphere Application Server Installation

Avira Browser-Schutz (Erkennungen) Kurzanleitung

datenfabrik. Validieren von -Adressen 1

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Business Intelligence für Prozesscontrolling

ANLEITUNG GERÄTEREGISTRATION AN KRZ.SMK IOS

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

IT-Servicemanagement mit ITIL V3

Über die Herausgeber

Audiospektrum- Analyse mit Mikrocontrollern

Michael Kurz Martin Marinschek

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Benutzerverwaltung mit CODESYS 3.5

Predictive Analytics Client. Installationsanleitung

Samsung Large Format Display

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung

Anbindung von Thunderbird an (mit Kalender und Kontakten) Besuchen Sie uns im Internet unter

Endpoint Web Control Übersichtsanleitung. Sophos Web Appliance Sophos Enterprise Console Sophos Endpoint Security and Control

Mobile Konsole von NetSupport DNA Erste Schritte. Copyright 2011 NetSupport Ltd alle Rechte vorbehalten

jetzt lerne ich PHP 5 & MySQL 4.1 Der schnelle Einstieg in die objektorientierte

Continuous Delivery. Der pragmatische Einstieg. von Eberhard Wolff. 1. Auflage. dpunkt.verlag 2014

Mapbender3 Workshop. Astrid Emde AGIT 2015 Salzburg

Dr. Michael Hahne

datenfabrik.phone Telefonnummern mit den SQL Server Integration Services validieren

Datenbank-basierte Webserver

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Magento Theming Ein Einstieg Rainer Wollthan

objectif Import von Excel-Daten Bei Fragen nutzen Sie bitte unseren Support: Telefon: +49 (30)

Backend

Matrix42. Use Case - Inventory. Version Februar

Transkript:

Michael Weigend Rapid Web Development mit Python Web-2.0-Anwendungen mit TurboGears

Michael Weigend: Rapid Web Development mit Python Web-2.0-Anwendungen mit TurboGears ISBN: 978-3-939084-64-8 2007 entwickler.press Ein Imprint der Software & Support Verlag GmbH http://www.entwickler-press.de http://www.software-support.biz Ihr Kontakt zum Verlag und Lektorat: lektorat@entwickler-press.de Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Fachkorrektorat: Hendrik Cyrus Korrektorat: mediaservice, Siegen Satz: mediaservice, Siegen Umschlaggestaltung: Caroline Butz Belichtung, Druck & Bindung: M.P. Media-Print Informationstechnologie GmbH, Paderborn Alle Rechte, auch für Übersetzungen, sind vorbehalten. Reproduktion jeglicher Art (Fotokopie, Nachdruck, Mikrofilm, Erfassung auf elektronischen Datenträgern oder andere Verfahren) nur mit schriftlicher Genehmigung des Verlags. Jegliche Haftung für die Richtigkeit des gesamten Werks kann, trotz sorgfältiger Prüfung durch Autor und Verlag, nicht übernommen werden. Die im Buch genannten Produkte, Warenzeichen und Firmennamen sind in der Regel durch deren Inhaber geschützt.

Einleitung 11 1 Rapid Web Development 13 1.1 Alle reden von Web 2.0 13 1.2 Was ist ein Web-Development-Framework? 13 1.3 Die zentralen Komponenten von TurboGears 14 Python 14 Kid-Templating 15 CherryPy 15 SQLObject 16 Weitere Komponenten 16 1.4 Installation 16 Python Eggs 17 Python Package Index (Python Cheeseshop) 17 EasyInstall 18 Installation mit EasyInstall 19 1.5 Literatur 20 2 Grundlagen der Web-Programmierung mit Python 21 2.1 Was ist ein Protokoll? 21 2.2 URI und URL 22 2.3 Das HTTP-Protokoll 23 Startzeile einer Anfrage (Initial Request Line) 24 Startzeile einer Antwort (Initial Response Line) 24 Header 24 2.4 Serverseitige Web-Programmierung mit Python 25 Ein einfacher HTTP-Server 25 Zugriff auf statische Ressourcen 26 CGI-Skripte 27 CGI-Skripte auf einem lokalen Rechner testen 29 CGI-Skripte auf einem Rechner mit Internetkonnektivität installieren 29 Übergabe von Daten an das CGI-Skript 30 Cookies 34 Beispiel: Besuchszähler 35 CGI-Skripte debuggen 37 2.5 Clientseitige Programmierung 37 Zugriff auf Ressourcen das Modul urllib 37 Rapid Web Development mit Python 5

E-Mails senden mit SMTP 40 2.6 Referenz 43 HTTP 43 CGI 44 smtplib 45 2.7 Literatur 46 3 CherryPy 47 3.1 Idee, Geschichte, Versionen und Installation 47 3.2 Einführendes Beispiel 47 3.3 Der Controller-Baum 51 3.4 Übergabe von Daten 53 Daten aus einem HTML-Formular übergeben 54 Daten in einem Pfad übergeben die Methode default() 56 3.5 Konfiguration 60 Einführendes Beispiel: Wie ändert man den Port des Servers? 60 Aufbau der Konfiguration 61 Entwicklungsmodus und Produktionsmodus 62 3.6 Filter 63 3.7 Statische HTML-Seiten (static_filter) 63 Mehrere Filter für statische Seiten 66 Eine einzige statische HTML-Seite für mehrere URLs (static_filter.file) 67 3.8 Persistenz von Sitzungsdaten 68 Speichern von Sitzungsdaten in Formularen 68 Nutzung des Session-Objekts 71 Konfiguration des Session-Managements 73 Abbruch einer Session 77 3.9 Dateien hochladen 77 3.10 XML-RPC 80 Anfrage 80 Ein CherryPy-Server für XML-RPCs 81 Das Python-Modul xmlrpclib 81 3.11 Zugriff auf die HTTP-Header einer Anfrage (Request) 84 3.12 Zugriff auf die HTTP-Header einer Antwort (Response) 85 3.13 Der Quiz-Server die Minimalversion 87 Das MVC-Pattern (Model View Controller) 89 Der Projektordner 90 Model 90 View 93 Controller 96 3.14 Referenz 101 Konfiguration 101 6

cherrypy.request 103 cherrypy.response 103 Änderungen bei CherryPy 3.0 103 3.15 Literatur 104 4 Object Relational Mapping (ORM) 105 4.1 Grundlagen relationaler Datenbanken 105 Vom ER-Diagramm zum Relationenschema 106 4.2 Eine MySQL-Datenbank erstellen 108 Installation und Start des MySQL-Servers 108 Login 108 User einrichten 109 Tabellen anlegen 111 Datensätze einfügen 112 Anfragen an eine SQL-Datenbank 113 4.3 Anbindung eines Python-Programms an eine MySQL-Datenbank 115 Verändern einer Tabelle 115 Daten abfragen 118 4.4 ORM mit SQLObject 119 Abbildung einer Klasse durch eine Tabelle 120 Objekte erzeugen und verändern 123 Implementierung von 1:n-Beziehungen (one to many) 125 Implementierung von n:m-beziehungen (many to many) 127 Anfragen (Queries) 131 SQLObject-Klassen erweitern 135 SQL-Metadaten 137 4.5 Quiz-Server 138 4.6 Referenz 140 MySQL 140 Verarbeitung von zeitbezogenen Daten mit dem Python-Modul datetime 141 SQLObject 142 4.7 Literatur 145 5 Gestaltung der Präsentation 147 5.1 CSS-Stylesheets 147 Stildeklarationen verwenden 148 Stile für unterschiedliche Ausgabemedien 150 Formate für HTML-Elemente deklarieren 151 Klassen das Attribut class 152 Dekorative Hyperlinks 154 Individualformate das Attribut id 155 Bedingte Formate 157 Schriftgestaltung 158 Absolute und relative Größenangaben 160 Rapid Web Development mit Python 7

Farben 164 Layout: Positionen, Abstände und Rahmen 164 5.2 Templating mit Kid 172 Einführendes Beispiel 172 XHTML 174 Template-Objekte erzeugen und serialisieren 176 Einbettung von Python-Programmblöcken (PIs) 178 Substitution von Ausdrücken 181 Dynamisch erzeugter Text-Inhalt von XML-Elementen (py:replace, py:content) 183 Bedingte Darstellung (py:if, py:strip) 185 Dynamische Attribute 188 Template-Funktionen (py:def) 190 Match-Templates (py:match) 193 Wiederverwendung von Template-Komponenten (py:extends) 196 Layout-Templates (py:layout) 198 Reihenfolge der Verarbeitung von py:-attributen 200 Funktionen 200 Präsentationsalgorithmik und MVC 203 5.3 Eine Präsentation für den Quiz-Server 207 Vorbereitung 207 Statische Elemente die CSS-Datei 208 Gemeinsam verwendete Elemente Match-Templates und Template-Funktionen 210 Templates für die Webseiten 211 Das Präsentationsmodul (view.py) 218 5.4 Referenz 219 CSS 219 Kid 223 5.5 Literatur 224 6 TurboGears 225 6.1 Eine erste Anwendung mit tg-admin quickstart 225 Das Projekt anlegen 226 Die Struktur des Projektordners 227 Den Server starten 228 Die Grundstruktur modifizieren und verstehen 230 6.2 Präsentationsmanagement 232 Das Master-Template 233 Anwendungsbeispiel 236 6.3 Modellmanagement 239 Beispielprojekt: Modellierung von Marathonläufen 239 Vorbereitung des Datenbanksystems 240 Die Konfiguration modifizieren 240 Das Modell definieren 241 8

Tabellen erzeugen und löschen mit tg-admin sql 241 Den Zustand des Modells manipulieren mit tg-admin shell 243 Die Datenbank manipulieren mit CatWalk 243 Das Modell in das Projekt integrieren 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 267 Einführendes Beispiel 268 Das Identitätsmanagement im Controller anwenden 277 Das Identitätsmanagement in Kid-Templates anwenden 278 6.8 Juristische Vorgaben für den Betrieb einer Web-Plattform 279 6.9 Das K-Quiz mit TurboGears 280 Analyse 280 Projekt anlegen und Datenbank vorbereiten 281 Modell 282 Das gemeinsame Stylesheet 285 Allgemeiner Aufbau des Moduls controller.py 288 Startseite und Anwendungsfälle Login und Logout 290 Anwendungsfall Quiz spielen 295 Anwendungsfall Registrieren 300 Anwendungsfall Aufgabe editieren 304 Anwendungsfall Aufgaben entfernen 308 6.10 Das Projekt auf einem Produktionsserver veröffentlichen 312 Konfigurationsdateien 313 Die Projekte hochladen 313 Die Datenbank auf dem Produktionsserver vorbereiten 314 Den Server starten 314 Ein Python-Egg für das Projekt erzeugen 315 Das Python-Egg des Projekts auf dem Produktionsserver installieren 315 6.11 Referenz 316 tg-admin 316 Funktionen 316 Validatoren 317 6.12 Literatur 318 Stichwortverzeichnis 319 Rapid Web Development mit Python 9