from SMWinservice import SMWinservice import SimpleHTTPServer, SocketServer import urlparse, os PORT = 8000 INDEXFILE = 'index.html' class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): # Parse query data to find out what was requested parsedParams = urlparse.urlparse(self.path) # See if the file requested exists if os.access('.' + os.sep + parsedParams.path, os.R_OK): # File exists, serve it up SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self); else: # send index.html, but don't redirect self.send_response(200) self.send_header('Content-Type', 'text/html') self.end_headers() with open(INDEXFILE, 'r') as fin: self.copyfile(fin, self.wfile) class PythonHttpServer(SMWinservice): _svc_name_ = "PythonHttpServer" _svc_display_name_ = "Angular Quiosk Http Server" _svc_description_ = "Python http server hosting Angular Quiosk App" def start(self): self.isrunning = True def stop(self): self.isrunning = False def main(self): Handler = MyHandler httpd = SocketServer.TCPServer(("", PORT), Handler) httpd.serve_forever() if __name__ == '__main__': PythonHttpServer.parse_command_line()