2010-08-27 6 views
18

Je suis en train d'exécuter un flux Icecast en utilisant un simple script Python pour choisir une chanson au hasard dans la liste des chansons sur le serveur. Je cherche à ajouter une interface vote/demande, et mon hôte permet l'utilisation de Python pour servir des pages Web par CGI. Cependant, je suis accroché juste sur la façon d'obtenir les arguments GET fournis par l'utilisateur. J'ai essayé de la manière habituelle avec sys.argv:arguments HTTP GET en Python

#!/usr/bin/python 
import sys 
print "Content-type: text/html\n\n" 
print sys.argv 

Mais frapper jusqu'à http://example.com/index.py?abc=123&xyz=987 seulement des retours "[ 'index.py']". Y at-il une autre fonction Python a à cet effet, ou est-il quelque chose que je dois changer avec CGI? Est ce que j'essaye de faire même possible?

Merci.

Répondre

40

cgi.FieldStorage() devrait faire l'affaire pour vous ... Il retourne un dictionnaire avec la clé que le champ et la valeur que sa valeur.

import cgi 
import cgitb; cgitb.enable() # Optional; for debugging only 

print "Content-Type: text/html" 
print "" 

arguments = cgi.FieldStorage() 
for i in arguments.keys(): 
print arguments[i].value 
+0

Merci Lalli, exactement ce que je avais besoin. – James