尽管有字段的GET请求,FieldStorage仍为空

时间:2012-11-13 00:48:49

标签: python get cgi

我开始使用python CGI编程,在apache2中使用mod_python,并尝试将HTTP请求中的GET字段检索到一个简单的.py页面。

代码:

#!/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脚本的参数。

1 个答案:

答案 0 :(得分: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只会抓取查询字符串,这最多会为您提供您尝试提交的文件的名称。