Web2py
# Web2py

web2py ist ein freies Webframework für die agile Entwicklung von datenbankbasierten Webanwendungen. Es ist in der Programmiersprache Python geschrieben.

Ein Fokus von web2py liegt auf Datensicherheit, indem es standardmäßig Mechanismen zur Validierung von Nutzereingaben und Maskierung von Ausgaben einsetzt und so die meisten gängigen Angriffspunkte wie SQL-Injections, Cross-Site-Scripting und unsichere direkte Referenzierung von Objekten verhindert. Weiterhin ermutigt es die Entwickler dazu, saubere Praktiken der Software-Entwicklung einzusetzen, beispielsweise das Model-View-Controller-Architekturmuster, Affenformulare, serverseitige Sitzungen oder die sichere Handhabung von hochgeladenen Dateien.

web2py ist ein vollständiges Framework, da es Komponenten für alle gängigen Hauptfunktionen seines Einsatzzweckes enthält: Einige Beispiele:

* Handhabung von Cookies, Sessions, HTTP-Anfragen und -Antworten
* konfigurierbares Caching in Arbeitsspeicher und auf Massenspeichern
* inhaltliche Mehrsprachigkeit
* automatisches Protokollieren von Fehlern einschließlich ihres jeweiligen Kontextes.
* eine Abstraktionsschicht für Datenbanken, die dynamisch SQL erzeugt
* Templates ermöglichen die Nutzung von Python-Code eingebettet in HTML-Code, anders als etwa bei Django ist keine gesonderte Template-Sprache zu erlernen
* Kompatibilität zu vielen Datenbankmanagementsystemen (derzeit SQLite, MySQL, PostgreSQL, Oracle, Microsoft SQL Server, Firebird, IBM DB2, Informix, Ingres und Google App Engine (Datastore))

Ein Merkmal von web2py ergibt sich aus seiner Herkunft: Ursprünglich wurde es an der DePaul University als Lehr-/Lernwerkzeug entworfen und verfügt daher über eine sehr steile Lernkurve. So wurde auf eine einfache Installation geachtet, indem es auf den typischen Installationsprozess verzichtet. Es bietet weiterhin eine Web-Oberfläche, die das Entwickeln und Pflegen, Testen, Debugging sowie die Verwaltung der Datenbanken ohne gesonderte Tools ermöglicht. Eine Besonderheit von web2py ist die Abwärtskompatibilität, d. h. alle Websites, die mit web2py entwickelt wurden, werden auch mit zukünftigen Versionen laufen.

web2py kommuniziert über die WSGI-Schnittstelle, derzeit die aktuelle Entwicklung für die Kommunikation zwischen Webserver und Webanwendungen im Python-Umfeld. Es enthält auch bereits den in nativem Python implementierten SSL-fähigen WSGI-Server Rocket (bis Version 1.76.5 CherryPy), bietet aber auch Zugriff über CGI und FastCGI.

## Anwendungen

Basierend auf web2py werden von den gleichen Autoren zwei Anwendungen realisiert, welche einerseits die Möglichkeiten des Frameworks illustrieren, andererseits vollwertige, flexibel nutzbare os-Anwendungen darstellen:

### T3

    ist ein Wiki, das gegenüber üblichen Produkten dieser Kategorie a) die Einbindung von Datenbanken sowie b) von Python-Code in Wiki-Seiten erlaubt.

### KPAX

    ist ein Content-Management-System, das wesentliche Grundfunktionen wie Anhänge, Auto-Navigation und Benutzergruppen bietet und eine Ajax-Schnittstelle einsetzt.
