使用python获取查询字符串

使用python获取查询字符串,python,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.g

正在努力了解为什么这不起作用:

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\u字符串

我可以看到URL,它是:

http://myserver/currentcost.py?dt=2013-09-10&tm=00
我简直迷路了

试试看:

req.subprocess_env['QUERY_STRING']
这就是它与mod_python一起工作的方式;你以前做这件事的方式似乎是为了CGI

另外,作为旁注,我认为最好是:

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

d.get('dt', [''])[0]
尝试使用:

d=parse_qs(os.environ.get('QUERY_STRING','')


这对我很有效,因为我也有同样的问题。经过一段时间的研究,我发现了这个解决方案,从那以后,一切似乎都很好

呃,你想用字符串“QUERY\u string”做什么?这是在你的机器中发现的环境变量之一吗?你是如何运行这个脚本的?CGI,mod_python,mod_wsgi,what?@Daniel。我通过Ajax提交了一个表单,mod_python脚本应该会得到URL。我在其他帖子中读到的或被推到的所有内容都表明,在提交表单时,查询字符串变量是在环境中设置的。我从来没见过这么简单的任务这么难解决!但是为什么要使用mod_python呢?