python basehttpserver和cgihttpserver do_GET(self),使用cgi requesthandler和base requesthandler
这适用于basehttprequesthandler,而不是cgihttprequesthandler。我需要一种使用两个库来管理这两种“类型”的方法吗?如果这是可行的话。提前谢谢。试试这样的方法:python basehttpserver和cgihttpserver do_GET(self),使用cgi requesthandler和base requesthandler,python,basehttprequesthandler,cgihttprequesthandler,Python,Basehttprequesthandler,Cgihttprequesthandler,这适用于basehttprequesthandler,而不是cgihttprequesthandler。我需要一种使用两个库来管理这两种“类型”的方法吗?如果这是可行的话。提前谢谢。试试这样的方法: class WebServer(SocketServer.ThreadingMixIn,BaseHTTPServer.HTTPServer): # Works with basehttphandler do_get(self): if 'home' in self.
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()
当有些东西不起作用时,试着给出一些细节。你收到错误信息了吗?它是否做了您所期望的事情?本质上,我试图做的是管理GET请求和其他HTTP请求方法。使用BaseHTTPServer,do_GETself可以工作。只要我使用不再是选项的CGIHTTPRequestHandler。我没有收到任何错误,它只是停止工作。因为我需要能够使用cgi,所以仅仅使用basehttpserver是不可伸缩的。基本上,我需要能够使用CGIHTTPServer处理do_GETself类型的函数。对不起,有什么困惑。我不太擅长解释。
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()