无法从URL获取参数 - 为什么我的cgi.FieldStorage()为空?

时间:2015-06-13 19:58:39

标签: python parameters cgi parameter-passing

我无法从URL获取参数。在阅读了网上的大量帖子后,似乎没有回答我的问题......

我有一个简单的HTML文件:

<html>
<head>
</head> 
<body>
    <form action="test.py" method="get">            
        Name: <input id="person_name" type="text" name="person_name" >          
        <input id="submit_button" type="submit" value="Submit" >        
    </form>     
</body>

我的python脚本如下所示:

import cgi, cgitb   

form = cgi.FieldStorage() 
name = str( form.getvalue('person_name') )

print ("Content-type:text/html\n\n")
print ("<html>")
print ("<head>")    
print ("</head>")
print ("<body>")
print ("Hello " + name )
print("<br/>")
print ("all params: " + str(form)  )
print ("</body>")
print ("</html>")

然而,当我执行HTML文件并输入“Mike”作为名称时,我的python脚本会打印出来:

Hello None
all params: FieldStorage(None, None, []) 

cgi.FieldStorage()为空。 我该如何解决?

3 个答案:

答案 0 :(得分:1)

很难说。

<form action="test.py" method="get">错误?

应为<form action="cgi-bin/test.py" method="get">

如果“cgi-bin”不是url的一部分,则sgi脚本不会被执行。你得到某种回应甚至令人惊讶。

答案 1 :(得分:0)

  

我收到“500内部服务器错误”

现在好多了。看起来它正在开始工作。问题是你的python脚本没有声明。它始于import cgi, cgitb,应以#!/usr/bin/python#!/usr/bin/env python开头。 Apache不知道它是什么类型的脚本。

答案 2 :(得分:0)

500内部服务器错误是你的apache脚本配置文件的问题,尤其是pythonhandler和addhandlers区域与mod-python有关