简体   繁体   English

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

[英]How to access a query parameter (“$_GET”) in mod_python?

I want to know how to show requests ( $_GET ) on a python script ? 我想知道如何在python脚本上显示请求( $_GET )?

Note that i am using mod_python as basic web server running with apache2 on UBUNTU server. 请注意,我将mod_python用作UBUNTU服务器上与apache2一起运行的基本Web服务器。

If you have any idea your help will be very appreciated :) 如果您有任何想法,将非常感谢您的帮助:)

Other python web server like Django etc ... note needed in my case because i am running only one python script for a specific task :) 其他Python网络服务器(如Django等)...在我的情况下需要注意,因为我仅针对一个特定任务运行一个python脚本:)

For a simple script to respond to a web request, I'd not use mod_python ; 对于一个简单的脚本来响应Web请求,我不使用mod_python you probably want to switch to mod_wsgi instead here. 您可能想在这里切换到mod_wsgi

You'll have to parse the QUERY_STRING WSGI variable yourself; 您必须自己解析QUERY_STRING WSGI变量; you can do so with the urlparse.parse_qs() function : 您可以使用urlparse.parse_qs()函数执行此操作

from urlparse import parse_qs

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

parse_qs parses out the query string and sets the value in the resulting dictionary to a list per key, because keys can occur more than once in a query string. parse_qs解析查询字符串,并将结果字典中的值设置为每个键的列表 ,因为键可以在查询字符串中出现多次。

The above will pick out the first value in the list, or None if the key isn't present at all. 上面将选择列表中的第一个值;如果根本不存在该键,则选择None

If you are going to stick to plain-vanilla WSGI, read a decent tutorial to understand how it works. 如果您要使用普通的WSGI,请阅读不错的教程以了解其工作原理。 I strongly recommend you use a framework however; 我强烈建议您使用框架。 even just Werkzeug can make your life as a developer vastly simpler, even for a simple script. 即使是Werkzeug ,甚至对于简单的脚本,都可以使您作为开发人员的生活大大简化。

If you are going to stick with a mod_python request handler, replace environ['QUERY_STRING'] with request.args() : 如果您要坚持使用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]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM