Seite 1 von 1

Python 3k und wsgiref

Verfasst: Donnerstag 27. November 2008, 11:56
von tordmor
Ich versuche gerade eine Todoliste in python3 mit wsgi zu schreiben. Dabei ist mir aufgefallen, dass 1. wsgiref einen einfach zu behebenden Fehler hat:

Code: Alles auswählen

--- /usr/lib/python3.0/wsgiref/simple_server.py 2008-11-27 11:20:11.000000000 +0100
+++ simple_server.py    2008-11-27 11:29:40.000000000 +0100
@@ -111,9 +111,9 @@
         if length:
             env['CONTENT_LENGTH'] = length

-        for h in self.headers:
-            k,v = h.split(':',1)
-            k=k.replace('-','_').upper(); v=v.strip()
+        for k in self.headers:
+            v = self.headers[k].strip()
+            k=k.replace('-','_').upper();
             if k in env:
                 continue                    # skip content length, type,etc.
             if 'HTTP_'+k in env:
Zweitens aber, ein größeres Problem ist, dass der wsgiref server versucht einen (unicode-) String über einen Socket zu senden, ohne ihn zu encoden, was natürlich nicht funktioniert.

Was mir jetzt nicht ganz klar ist, an welcher Stelle man diesen Fehler jetzt beheben sollte. Ist das ein Problem des WSGIServers? Oder sollte der http.server.HttpServer das kodieren übernehmen? Oder erst der socketserver.TCPServer? Oder sollten das einer der entsprechenden Request handler tun? Ich bin an dieser Stelle ein wenig überfordert.

Außerdem wäre es gut, wenn jemand mit mehr Erfahrung damit den Patch an die richtige Stelle schicken könnte oder mir schreibt, was damit zu tun ist.