Подтвердить что ты не робот

Получение аргументов HTTP GET в Python

Я пытаюсь запустить поток Icecast с помощью простого Python script, чтобы выбрать случайную песню из списка песен на сервере. Я хочу добавить интерфейс для голосования/запроса, а мой хост позволяет использовать 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? Это то, что я пытаюсь сделать даже возможно?

Спасибо.

4b9b3361

Ответ 1

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