Ich hätte gerne ein Beispiel für einen Python-Bytecode-Interpreter, an dem ich mich langhangeln kann und fehlende Funktionen implementieren kann. Leider kann ich keine newstyle-Klassen. Auf eval(), Datenbank-API oder AST-Manipulationen würde ich auch gerne verzichten, eigentlich alle nicht-trivialen Funktionen der Standardbibliothek sind tabu. Ich möchte halt wenigstens nominell mein Ziel, ein Python-Webrahmenwerk mittels Interpreter laufen zu lassen, erreichen...
Vielleicht muss ich mir selbst etwas schreiben, das so aussieht wie web.py, aber intern einfacher gestrickt ist. Schaue ich mir das Hallo-Welt-Beispiel von web.py an, muss ich eigentlich nur zwei Funktionen haben: `web.run` und `web.input`. Erstere Methode sagt, was für eine URL aufgerufen werden soll. Die andere greift auf die Requestparameter zu.
Web.py scheint globale Variablen und Funktionen zu lieben, alles steckt da in einer thread-lokalen Variable "ctx", auf die dann die globalen Funktionen zugreifen. Besser ist IMHO, die Exemplare der Klassen zu benutzen, die die GET und POST-Methoden tragen. Also:
Code: Alles auswählen
class hello(web.request):
def GET(self, name):
i = self.input(times=1)
if not name: name = 'world'
for x in range(int(i.times)):
print "Hello", name
web.run('/(.*)', hello)