L'extraction HTTP OBTENIR des variables en Python
Je suis en train de configurer un serveur HTTP dans un script Python. Jusqu'à présent, je suis sur le serveur les mêmes au travail, avec un code semblable à celui ci-dessous, à partir de ici.
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
print("Just received a GET request")
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write('Hello world')
return
def log_request(self, code=None, size=None):
print('Request')
def log_message(self, format, *args):
print('Message')
if __name__ == "__main__":
try:
server = HTTPServer(('localhost', 80), MyHandler)
print('Started http server')
server.serve_forever()
except KeyboardInterrupt:
print('^C received, shutting down server')
server.socket.close()
Cependant, j'ai besoin d'obtenir des variables de la requête GET, donc si server.py?var1=hi
est demandé, j'ai besoin du code Python pour mettre var1
dans une variable Python et processus (comme l'imprimer). Comment pourrais-je aller à ce sujet? Peut-être une simple question pour vous de Python pros, mais ce Python débutant ne sait pas quoi faire! Merci à l'avance!
OriginalL'auteur BloodPhilia | 2011-03-08
Vous devez vous connecter pour publier un commentaire.
urlparse.parse_qs()
Ou si vous vous souciez de l'ordre ou les doublons,
urlparse.parse_qsl()
.Importer en Python 3:
from urllib.parse import urlparse
urlparse.parse_qs()
retourne un dictionnaire. L'utiliser comme vous le feriez pour tout autre dictionnaire en Python.Juste coché cette réponse, et je ne trouve pas où BaseHTTPServer définit les variables d'environnement. CGIHTTPServer.
Merci pour votre réponse! Je les aime déjà! 😀
OriginalL'auteur Ignacio Vazquez-Abrams
Importation
urlparse
et à faire:On peut également appliquer
parse_qs
àurlparse(self.path).query
au lieu de la division chemin manuellement.OriginalL'auteur samplebias