2010-08-27 23 views
18

Sunucudaki şarkıların listesinden rastgele bir şarkı seçmek için basit bir Python betiği kullanarak bir Icecast akışı çalıştırmaya çalışıyorum. Bir oylama/istek arayüzü eklemek istiyorum ve ana bilgisayarım web sayfalarını CGI ile sunmak için python kullanımına izin veriyor. Ancak, kullanıcı tarafından sağlanan GET argümanlarının nasıl alınacağına bakıyorum. Ben sys.argv ile olağan yolu denedim:Python'da HTTP GET argümanlarını alma

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

Ama http://example.com/index.py?abc=123&xyz=987 sadece döner yukarı isabet "[ 'index.py']". Bu amaçla Python'un başka bir işlevi var mı, yoksa CGI ile değiştirmem gereken bir şey var mı? Yapmaya çalıştığım şey mümkün mü?

Teşekkürler.

cevap

40

cgi.FieldStorage() sizin için hile yapmalıdır ... Bu anahtar ile alan ve değer olarak değer olarak bir sözlük döndürür.

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

Teşekkürler lalli, tam ihtiyacım olan şey. – James