Python CGI表单(NameError:name'form'未定义)

时间:2012-05-01 03:59:20

标签: python html forms cgi

我不确定为什么这个cgi形式不能正常工作。问题出在main()函数的某个地方,但我不太确定如何修复它。通过解释器运行时的错误如下:

文件" ptest.py",第48行,in if(form.has_key(" action")和form.has_key(" name")\ NameError:name' form'未定义

假设适当的缩进。

# Import the CGI module
import cgi, cgitb


# Required header that tells the browser how to render the HTML.
print "Content-Type: text/html\n\n"

# Define function to generate HTML form.
def generate_form():
    print "<HTML>\n"
    print "<HEAD>\n"
    print "\t<TITLE>Info Form</TITLE>\n"
    print "</HEAD>\n"
    print "<BODY BGCOLOR = white>\n"
    print "\t<H3>Please, enter your name and age.</H3>\n"
    print "\t<TABLE BORDER = 0>\n"
    print "\t\t<FORM METHOD = post ACTION = \
                \"example_7.1.cgi\">\n"
    print "\t\t<TR><TH>Name:</TH><TD><INPUT type = text \
                name = \"name\"></TD><TR>\n"
    print "\t\t<TR><TH>Age:</TH><TD><INPUT type = text name = \
                \"age\"></TD></TR>\n"
    print "\t</TABLE>\n"
    print "\t<INPUT TYPE = hidden NAME = \"action\" VALUE = \
            \"display\">\n"
    print "\t<INPUT TYPE = submit VALUE = \"Enter\">\n"
    print "\t</FORM>\n"
    print "</BODY>\n"
    print "</HTML>\n"

# Define function display data.
def display_data(name, age):
    print "<HTML>\n"
    print "<HEAD>\n"
    print "\t<TITLE>Info Form</TITLE>\n"
    print "</HEAD>\n"
    print "<BODY BGCOLOR = white>\n"
    print name, ", you are", age, "years old."
    print "</BODY>\n"
    print "</HTML>\n"

# Define main function.

def main():
    form = cgi.FieldStorage()
    if (form.has_key("action") and form.has_key("name") \
        and form.has_key("age")):
            if (form["action"].value == "display"):
                display_data(form["name"].value, form["age"].value)
    else:
        generate_form()

if __name__ == '__main__':
    main()

0 个答案:

没有答案