BaseHTTPHandler del módulo BaseHTTPServer no parece proporcionar ninguna forma conveniente de acceder a los parámetros de solicitud http. ¿Cuál es la mejor manera de analizar los parámetros GET de la ruta y los parámetros POST del cuerpo de la solicitud?Analizar los parámetros http GET y POST de BaseHTTPHandler?
En este momento, estoy usando esto para 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 = {}
Esto funciona para la mayoría de los casos, pero me gustaría algo más robusto que se encarga de codificaciones y casos como parámetros vacíos correctamente. Idealmente, me gustaría algo pequeño e independiente, en lugar de un marco web completo.
La biblioteca CGI no maneja codificaciones (como UTF -8) para usted, por lo que es menos adecuado que algunas de las otras bibliotecas disponibles. – Wolph
La codificación se puede delegar al primer argumento similar a un archivo de FieldStorage. – gimel
Es cierto, pero ¿para qué preocuparse cuando hay scripts que manejan esto para usted, incluyendo la captura de errores? No hay necesidad de reinventar la rueda. – Wolph