2013-09-27 39 views
1

掙扎看到QUERY_STRING這是爲什麼不工作:獲取使用python

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

我可以看到這是網址:

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

我簡直失去了!

+0

犯錯的,什麼是你想用字符串「QUERY_STRING」呢?它是你機器中的環境變量之一嗎? – justhalf

+0

你如何運行這個腳本 - CGI,mod_python,mod_wsgi,什麼? –

+0

@Daniel。我通過Ajax提交表單,而mod_python腳本應該獲取URL。我在其他帖子中閱讀或推送的所有內容都表明在提交表單時環境中設置了QUERY_STRING變量。我從來不知道這麼簡單的任務很難解決! –

回答

0

嘗試:

req.subprocess_env['QUERY_STRING'] 

這是它應該如何與mod_python的工作;你以前的做法似乎是爲了CGI。

此外,作爲一個側面說明,我認爲這將是更好的事:

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

代替

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

太好了,非常感謝! –