Python BaseHTTPRequestHandler类:根据特定的URL路径执行操作

时间:2019-03-28 14:36:00

标签: python-3.x python-requests basehttprequesthandler

在NodeExpress中,可以指定接收具有给定路径的请求时要执行的动作。例如,您可以定义

router.put("/:variableElement/fixedPath", function(req, res){
    //console.log(req.body);   
    ...//do stuff for root 1
  });

其中variableElement是路径的可变元素。因此,这将在/1/fixedPath2/fixedPath的情况下都执行,例如在/AnyOtherPath的情况下不会执行。

是否可以通过将BaseHTTPRequestHandler类子类化,然后覆盖我感兴趣的方法(即do_GET)来在Python3中做类似的事情?

class GetHandler(BaseHTTPRequestHandler):

    def do_GET(self):
            parsed_path = urllib.parse.urlparse(self.path)
            message_parts = [
                'CLIENT VALUES:',
                'client_address=%s (%s)' % (self.client_address,
                                        self.address_string()),
                'command=%s' % self.command,
                'path=%s' % self.path,
                'real path=%s' % parsed_path.path,
                'query=%s' % parsed_path.query,
                'request_version=%s' % self.request_version,
                '',
                'SERVER VALUES:',
                'server_version=%s' % self.server_version,
                'sys_version=%s' % self.sys_version,
                'protocol_version=%s' % self.protocol_version,
                '',
                'HEADERS RECEIVED:',
             ]
             ...
             self.send_response(200)
             self.end_headers()

0 个答案:

没有答案