python basehttpserver和cgihttpserver do\u GET(self),使用cgi requesthandler和base requesthand

2024-04-25 20:22:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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,而不是cgihttpprequesthandler。我需要一种方法来管理这两种类型(同时使用两种库?)如果可行的话。提前谢谢。在


Tags: selfserverisportaddresswithdoclass
1条回答
网友
1楼 · 发布于 2024-04-25 20:22:50

试试这样的方法:

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

相关问题 更多 >