Класс Python BaseHTTPRequestHandler: выполнять действия в соответствии с указанным URL-путем - PullRequest
0 голосов
/ 28 марта 2019

В NodeExpress можно указать действия, которые будут выполняться при получении запроса с заданным путем.Например, вы можете определить

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

, где variableElement - переменный элемент пути.Таким образом, это будет выполняться как в случаях /1/fixedPath и 2/fixedPath, но, например, не в случае /AnyOtherPath.

. Есть ли шанс сделать что-то подобное в Python3 путем создания подкласса класса BaseHTTPRequestHandler изатем переопределить метод, который меня интересует (т.е. do_GET)?

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