Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python basehttpserver和cgihttpserver do_GET(self),使用cgi requesthandler和base requesthandler_Python_Basehttprequesthandler_Cgihttprequesthandler - Fatal编程技术网

python basehttpserver和cgihttpserver do_GET(self),使用cgi requesthandler和base requesthandler

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.

这适用于basehttprequesthandler,而不是cgihttprequesthandler。我需要一种使用两个库来管理这两种“类型”的方法吗?如果这是可行的话。提前谢谢。

试试这样的方法:

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()