在Python中读取请求参数

2 投票
2 回答
5675 浏览
提问于 2025-04-15 18:57

我刚接触Python,正在为我正在开发的ASP.NET应用程序写一个简单的程序。大概的步骤如下:

  1. 从请求中获取两个参数。(ASP.NET会通过POST方式调用这个网址,并发送两个参数)
  2. 内部执行一些业务逻辑,并构建一个响应。
  3. 把响应写回去,以便ASP.NET应用程序可以继续进行。

步骤2和3已经完成并且可以正常工作,但我找不到步骤1的解决办法。(我知道这应该很简单,也知道如何在Java、.NET、PHP和Ruby on Rails中做到,但在Python中却不知道,而且网上的文档和教程对我没有帮助。)我是在Apache上使用mod_python运行Python的。

在这里任何帮助都非常感谢。提前谢谢你们!
Vijay

2 个回答

0

“我知道这应该很简单,我会在Java/.NET/PHP和RoR中做到,但在Python中却不知道怎么做。”

其实,在Python这个语言里,这并不简单。

不过,在很多Python的网络框架中,这就简单多了。

不要搞混了Python(这个语言)和PHP(一个网络框架)或者RoR(也是一个网络框架)。

Python就像Java、VB或Ruby一样,是一种编程语言,而不是一个网络框架。

要把Apache的内容引入到Python中,你有三种选择。

  1. 使用CGI脚本。这是个糟糕的选择。

  2. 使用mod_python。这也不是个好选择。

  3. 使用mod_wsgi。这是一个更好的选择。

如果你只能用mod_python——比如说这是作业——你需要同时阅读mod_python的教程和Python的教程。

例如,这似乎就是你正在做的事情。 http://www.modpython.org/live/current/doc-html/tut-pub.html

5

这里有一个很好的初学者教程,讲的是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...

撰写回答