如何在mod_python中访问查询参数(" $ _ GET")?

时间:2014-09-11 09:16:44

标签: python wsgi mod-python query-parameters

我想知道如何在python脚本上显示请求($_GET)?

请注意,我使用mod_python作为在UBUNTU服务器上运行apache2的基本Web服务器。

如果您有任何想法,我们将非常感谢您的帮助:)

像Django等其他python web服务器......在我的情况下需要注意,因为我只运行一个特定任务的python脚本:)

1 个答案:

答案 0 :(得分:4)

对于回复网络请求的简单脚本,我不会使用mod_python;你可能想在这里切换到mod_wsgi

您必须自己解析QUERY_STRING WSGI变量;您可以使用urlparse.parse_qs() function

执行此操作
from urlparse import parse_qs

def application(environ, start_response):
    params = parse_qs(environ['QUERY_STRING'])
    foo = params.get('foo', [None])[0]

parse_qs解析查询字符串并将结果字典中的值设置为每个键的列表,因为键可以在查询字符串中多次出现。

上面将选择列表中的第一个值,或者None如果根本不存在该键。

如果您要坚持普通的WSGI,请阅读decent tutorial以了解其工作原理。我强烈建议您使用框架;即使只是简单的脚本,即使只是Werkzeug也可以使您作为开发人员的生活变得更加简单。

如果您要坚持使用mod_python请求处理程序,请将environ['QUERY_STRING']替换为request.args()

from urlparse import parse_qs

def requesthandler(req):
    params = parse_qs(req.args)
    foo = params.get('foo', [None])[0]