BaseHTTPHandler du module BaseHTTPServer ne semble pas offrir un moyen pratique d'accéder aux paramètres de requête http. Quelle est la meilleure façon d'analyser les paramètres GET à partir du chemin et les paramètres POST à partir du corps de la demande?Analyser les paramètres http GET et POST à partir de BaseHTTPHandler?
En ce moment, je suis en utilisant ce 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 = {}
Cela fonctionne pour la plupart des cas, mais je voudrais quelque chose de plus robuste qui gère les encodages et des cas comme paramètres vides correctement. Idéalement, j'aimerais quelque chose de petit et autonome, plutôt qu'un framework web complet.
La bibliothèque CGI ne gère pas encodages (comme utf -8) pour vous c'est donc moins adapté que d'autres bibliothèques disponibles. – Wolph
Le codage peut être délégué au premier argument de type FieldStorage. – gimel
Vrai, mais pourquoi s'embêter quand il y a des scripts qui gèrent cela pour vous, y compris l'attrape des erreurs? Pas besoin de réinventer la roue. – Wolph