BaseHTTPHandler из модуля BaseHTTPServer не обеспечивает удобный способ доступа к параметрам http-запроса. Каков наилучший способ проанализировать параметры GET из пути и параметры POST из тела запроса?
Сейчас я использую это для GET:
def do_GET(self):
parsed_path = urlparse.urlparse(self.path)
try:
params = dict([p.split('=') for p in parsed_path[4].split('&')])
except:
params = {}
Это работает в большинстве случаев, но мне бы хотелось что-то более надежное, чтобы правильно обрабатывать кодировки и случаи, такие как пустые параметры. В идеале, мне бы хотелось что-то маленькое и автономное, а не полная веб-структура.