WSGI / Colubrid - Begriffsklärung...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Samstag 6. Mai 2006, 08:26

Da ich gerade intensiv PyLucid auf WSGI umbaue kamen doch so einige Fragen auf, die ich teilweise schon im IRC geklärt hab. Dennoch möchte ich nocht mal alles klarstellen:

Die drei Wichtigsten Objekte in WSGI / Colubrid:
- request - Objekte die Daten vom Client beinhalten (z.B. POST/GET, cookie usw.)
- environ - Environ-Dict (wie bei CGI) zusätzlich WSGI-Objekte/Paremeter
- response - Colubrid's eigenes Objekt um Daten zum Client zurück zu schicken

WSGI - Komponenten:
App - Die eigentliche Applikation, die jeden request vom Client abarbeitet
Middleware - Objekte, die der App. "zuarbeiten/ergänzen" kann:
- Kann Datenstrom (HTML-Code) naträglich verändern (Replacer-Middleware)
- Kann zusätzliche Objekte ans environ packen, die von der App genutzt werden kann.

So wie ich das verstehe arbeitet die App jeden request neu ab, wohingegen die Middleware nur einmal "gestartet" werden müßen (z.B. bei fastCGI), die sind dann für jeden Request verfügbar. Macht z.B. Sinn bei einem Datenbank-Connection-Pool. Dieser erstellt nur beim start der fastCGI Skript die Verbindung und jeder Request kann diese dann nutzten. Erst wenn fastCGI-App beendet wird, muß die DB-Verbindung beendet werden...


Ist das soweit richtig???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Samstag 6. Mai 2006, 18:41

jens hat geschrieben:Die drei Wichtigsten Objekte in WSGI / Colubrid?
NUR IN COLUBRID!!! :-)

Apps müssen auch nicht jedes mal neu gestartet werden. Hängt von der Architektur ab. Sie müssen halt callable sein und einen iterator zurückgeben.
TUFKAB – the user formerly known as blackbird
Antworten