代码之家  ›  专栏  ›  技术社区  ›  user3818090

如何访问mod_python中的查询参数(“$_GET”)?

  •  4
  • user3818090  · 技术社区  · 10 年前

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

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

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

    其他python web服务器,如Django等。。。在我的案例中需要注意,因为我只为特定任务运行一个python脚本:)

    1 回复  |  直到 10 年前
        1
  •  9
  •   Martijn Pieters    10 年前

    对于响应web请求的简单脚本,我不会使用 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]