Allgemeine Frage zum BaseHTTPRequestHandler
Verfasst: Sonntag 2. März 2014, 19:35
Hallo,
ich bin neu in der Python-Programmierung und hoffe, dass mir bei meinem Problem geholfen werden kann.
Hier ist der Code, der mir Probleme bereitet:
Dieses Script liegt in einem Verzeichnis, das mehrere Ordner mit Bildern enthält. In dem Beispiel oben soll ein Bild aus dem Verzeichnis "Camera" angezeigt werden. Der HTML-Code bewirkt, dass die Seite nach fünf Sekunden neu geladen werden soll. Diesen Mechanismus wollte ich verwenden, um ganz simpel eine Diashow per Browser zu ermöglichen.
Jedoch scheitere ich gerade an der Basis, ich erhalte folgende Fehlermeldung in der Konsole:
Wenn ich den Header auf "image/jpeg" umstelle und den Inhalt der jeweiligen Bilder lade und ausgebe, funktioniert es ohne Probleme. Jedoch benötige ich leider "text/html" und das Tag "src" zur Darstellung.
Mache ich etwas grunsätzlich falsch oder führt dieser Weg mit etwas Umarbeitung zum Glück?
Ich freue mich auf eine nette Zusammenarbeit
Gruß
KK
ich bin neu in der Python-Programmierung und hoffe, dass mir bei meinem Problem geholfen werden kann.
Hier ist der Code, der mir Probleme bereitet:
Code: Alles auswählen
import string,cgi,time
from os import curdir, sep
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import os
import glob
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
try:
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
path = curdir + self.path + sep
listing = os.listdir(path)
self.wfile.write('<html><head><meta http-equiv="refresh" content="5"></head><body>')
self.wfile.write('<img src="Camera/2013-02-24_00-29-55_654.jpg" />')
self.wfile.write('</body></html>')
return
except IOError:
self.send_error(404,'File Not Found: %s' % self.path)
def do_POST(self):
global rootnode
try:
do_GET(self)
# nothing else to do here
except :
pass
def main():
try:
server = HTTPServer(('', 8080), MyHandler)
print 'started'
server.serve_forever()
except KeyboardInterrupt:
print 'down'
server.socket.close()
if __name__ == '__main__':
main()
Jedoch scheitere ich gerade an der Basis, ich erhalte folgende Fehlermeldung in der Konsole:
Ich sehe auch ein, dass (...).jpg/ kein Verzeichnis ist, nur weshalb möchte er an dieser Stelle ein Verzeichnis laden?OSError: [Errno 20] Not a directory: './Camera/2013-02-24_00-29-55_654.jpg/'
Wenn ich den Header auf "image/jpeg" umstelle und den Inhalt der jeweiligen Bilder lade und ausgebe, funktioniert es ohne Probleme. Jedoch benötige ich leider "text/html" und das Tag "src" zur Darstellung.
Mache ich etwas grunsätzlich falsch oder führt dieser Weg mit etwas Umarbeitung zum Glück?
Ich freue mich auf eine nette Zusammenarbeit
Gruß
KK