Python 3k und wsgiref
Verfasst: Donnerstag 27. November 2008, 11:56
Ich versuche gerade eine Todoliste in python3 mit wsgi zu schreiben. Dabei ist mir aufgefallen, dass 1. wsgiref einen einfach zu behebenden Fehler hat:
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.
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:
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.