2013-09-27 2 views
1

Пытаясь понять, почему это не работает:Получить QUERY_STRING с помощью питона

import MySQLdb 
import cgi, cgitb 
import os 
from wsgiref.simple_server import make_server 
from cgi import parse_qs, escape 

def index(req): 

    d = parse_qs(os.environ['QUERY_STRING']) 

    dtbox = d.get('dt', [''])[0] 
    tmbox = d.get('tm', [''])[0] 

Скрипт возвращает исключение KeyError: QUERY_STRING

Я вижу URL, который:

http://myserver/currentcost.py?dt=2013-09-10&tm=00 

Я просто потерян!

+0

ERR, что вы пытаетесь сделать со строкой «QUERY_STRING»? Является ли это одной из переменных среды, найденных на вашем компьютере? – justhalf

+0

Как вы запускаете этот скрипт - CGI, mod_python, mod_wsgi, что? –

+0

@ Daniel. Я передаю форму через Ajax, и скрипт mod_python, предположительно, получает URL-адрес. Все, что я прочитал или было отодвинуто в других сообщениях, предполагает, что переменная QUERY_STRING устанавливается в среде при отправке формы. Я никогда не знал, что такая простая задача будет так трудно решить! –

ответ

0

Try:

req.subprocess_env['QUERY_STRING'] 

Вот как это должно работать с mod_python; способ, которым вы делали это раньше, кажется, предназначен для CGI.

Кроме того, как примечание стороны, я думаю, было бы лучше сделать:

d.get('dt', [None])[0] 

вместо

d.get('dt', [''])[0] 
+0

Отлично, спасибо большое !!! –

Смежные вопросы