在Python中读取请求参数
我刚接触Python,正在为我正在开发的ASP.NET应用程序写一个简单的程序。大概的步骤如下:
- 从请求中获取两个参数。(ASP.NET会通过POST方式调用这个网址,并发送两个参数)
- 内部执行一些业务逻辑,并构建一个响应。
- 把响应写回去,以便ASP.NET应用程序可以继续进行。
步骤2和3已经完成并且可以正常工作,但我找不到步骤1的解决办法。(我知道这应该很简单,也知道如何在Java、.NET、PHP和Ruby on Rails中做到,但在Python中却不知道,而且网上的文档和教程对我没有帮助。)我是在Apache上使用mod_python运行Python的。
在这里任何帮助都非常感谢。提前谢谢你们!
Vijay
2 个回答
“我知道这应该很简单,我会在Java/.NET/PHP和RoR中做到,但在Python中却不知道怎么做。”
其实,在Python这个语言里,这并不简单。
不过,在很多Python的网络框架中,这就简单多了。
不要搞混了Python(这个语言)和PHP(一个网络框架)或者RoR(也是一个网络框架)。
Python就像Java、VB或Ruby一样,是一种编程语言,而不是一个网络框架。
要把Apache的内容引入到Python中,你有三种选择。
使用CGI脚本。这是个糟糕的选择。
使用mod_python。这也不是个好选择。
使用mod_wsgi。这是一个更好的选择。
如果你只能用mod_python——比如说这是作业——你需要同时阅读mod_python的教程和Python的教程。
例如,这似乎就是你正在做的事情。 http://www.modpython.org/live/current/doc-html/tut-pub.html
这里有一个很好的初学者教程,讲的是mod_python。
根据我对你问题的理解,你有一个基于mod_python的脚本,想要读取一个POST参数。其实你只需要使用mod_python自动提供的form
对象就可以了:
myparameter = form.getfirst("name_of_the_post_parameter")
你可以在这里找到文档:点击查看。
需要注意的是,这个解决方案是当你的服务器配置了PythonHandler mod_python.psp
时,这样你就可以使用“Python Server Pages”(特殊的<% %>标签,还有像form
这样的自动创建的变量等)。如果你是在写一个普通的mod_python 处理器,那么它看起来会像这样:
from mod_python import util
def handler(req):
form = util.FieldStorage(req, keep_blank_values=1)
myparameter = form.getfirst("name_of_the_post_parameter")
...other stuff...