2012-11-13 53 views
0

我开始使用python CGI编程,在apache2中使用mod_python,并试图检索HTTP请求中的GET字段到一个简单的.py页面。尽管有字段GET请求,FieldStorage仍然是空的

的代码:

#!/usr/bin/python                                                  

import cgi 
import cgitb; cgitb.enable() 

print 'Content-type: text/html\n' 
print '''                                                    
<html>                                                     
<body>                                                     
''' 
form = cgi.FieldStorage() 
l = len(form.keys()) 
print "<p>%s field(s) set.</p>" % l 
print '''                                                    
</body>                                                     
</html>                                                     
''' 

页面打印 “0字段(一个或多个)组”。这里有什么可能是错的?到目前为止,在我的搜索答案中,我没有在apache2的mod_python中找到一个阻止GET字段传输到CGI脚本的参数。

+0

您能向我们显示URL,以验证您是否确实正确地传递了字段? – abarnert

+0

我使用的URL类似myserverip/get.py?test = 1 – Dunaril

+0

当我发布它时,它更多的是评论而不是答案,所以在这里移动它:“您是否已经使用[cgihandler](http)配置了mod_python' ://www.modpython.org/live/mod_python-3.2.8/doc-html/hand-cgi.html)在你的Apache配置?“ OP的回答,简而言之:“是的。” –

回答

0

cgi.FieldStorage依赖于一个多部分表单被POST,而不是通过GET发送。改变你的窗体上的方法,并确保你已经多部分表单标签:

<form action="" method="post" multipart> 
    <input type="file" name="file"> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

当您使用GET方法,cgi.FieldStorage刚刚抓住的查询字符串,这将在最好的给你的名字你正在提交的文件。

+0

嗯。似乎也不起作用,POST参数也消失了。 Apache或mod_python配置中是否有可能导致此问题的东西? – Dunaril

+0

但无论如何,各种教程,我发现提及的可能性去从的FieldStorage GET领域。 – Dunaril

相关问题