Persistente Objekte im Webserver

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
joka
User
Beiträge: 2
Registriert: Freitag 21. August 2009, 07:50

Hi !

Ich schreibe eine Webapplikation und habe folgendes Problem. Ich möchte das Webinterface einfach nur als GUI betrachten (als wäre es Qt, GTK oder was auch immer). Die eigentliche Applikation soll aber "normal" laufen d.h. sie soll nicht einfach nur auf bestimmte Requests hin eine Webeite generieren, sondern auch den aktuellen Applikationszustand repräsentieren. Natürlich geht das zunächst einmal nur für einen einzigen User - was für mich auch ok ist. Das Problem ist das die meisten Lösungen Python fürs Web zu nutzen die Persistenz gar nicht bieten oder sie zumindest nicht garantieren (oder ich keine Kontrolle darüber habe). Da es nur für einen User ist wäre ein Apache oder Ähnliches sowiso nur Overhead.
Ich dachte also man nimmt sich einen Python internen Webserver (BaseHTTPServer) und deklariert ein Objekt der eigenen Applikation als Membervariable.

Laut allen dokus kann ich aber nichts darüber finden wie man die __init__ von HTTPServer overriden kann. Bin aber auch nicht sicher ob das generell der richtige Ansatz ist.
Hat irgendwer Tips ? Ratschläge ? LEICHTGEWICHTIGE Alternativen ?

Dank!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wenn du annehmen willst dass das Web einen Zustand hat, könntest du dir Continuation-basierte Frameworks ansehen; das bekannteste ist natürlich Smalltalks Seaside und PLT Scheme bietet einen ähnliche Funktionalität aber auch für Python gibt es ein solches Framework namens Nagare. Das benötigt allerdings Stackless Python, was aber kaum ein Problem sein sollte...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Vielleicht ist http://gist.github.com/106070 interessant. Irgendwo gibt es da auch in diesem Forum eine Diskussion zu. Wir waren am Überlegen, in wie weit man etwas wie das Java-Web-Rahmenwerk Wicket auch in Python sinnvoll nutzen könnte. Mein simpler Ansatz nutzt Pythons eingebauten WSGI-Server und könnte neben der Sessions beliebigen weiteren Zustand halten.

Stefan
Antworten