Получение HTTP GET аргументов в Python - PullRequest
24 голосов
/ 27 августа 2010

Я пытаюсь запустить поток Icecast с помощью простого скрипта Python, чтобы выбрать случайную песню из списка песен на сервере.Я хочу добавить интерфейс голосования / запроса, и мой хост позволяет использовать python для обслуживания веб-страниц через CGI.Тем не менее, я зациклен на том, как получить аргументы GET, предоставленные пользователем.Я пробовал обычный способ с sys.argv:

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

Но при нажатии http://example.com/index.py?abc=123&xyz=987 возвращается только «['index.py']"Есть ли какая-то другая функция, которую Python имеет для этой цели, или мне нужно что-то изменить с помощью CGI?То, что я пытаюсь сделать, даже возможно?

Спасибо.

1 Ответ

48 голосов
/ 27 августа 2010

cgi.FieldStorage() должен помочь вам ... Он возвращает словарь с ключом в качестве поля и значением в качестве его значения.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...