python basehttpserver и cgihttpserver do_GET(self), используйте обработчик запросов cgi и базовый обработчик запросов
class WebServer(SocketServer.ThreadingMixIn,BaseHTTPServer.HTTPServer):
# Works with basehttphandler
do_get(self):
if 'home' in self.path:
<do something here>
# "Working" Method is commented out. The problem I'm having is being unable to
# handle requests like GET, POST, etc with CGIHTTPRequestHandler.:
#
#DoIT=BaseHTTPServer.BaseHTTPRequestHandler((SERVER_ADDRESS,PORT),WebServer)
DoIt=webserver((SERVER_ADDRESS,PORT),CGIHTTPServer.CGIHTTPRequestHandler)
DoIT.serve_forever()
Это работает с basehttprequesthandler, а не с cgihttprequesthandler. Мне нужен способ управлять обоими "типами" (используя обе библиотеки?) Запросов, если это возможно. Заранее спасибо.
1 ответ
Попробуйте что-то вроде этого:
import BaseHTTPServer
import CGIHTTPServer
server = BaseHTTPServer.HTTPServer
server_address = ("", 8888)
class MyHandler(CGIHTTPServer.CGIHTTPRequestHandler):
def do_GET(self):
#do something
def do_POST(self):
#do something
httpd = server(server_address, MyHandler)
httpd.serve_forever()