1

我有这段代码,但我无法运行它,因为我收到了这个错误:“TypeError:'classobj' object is not subscriptable”,这是我的代码:

import cgi
import customerlib

form=cgi.FieldStorage

history = customerlib.find(form["f_name"].value,form["l_name"].value)


print "Content-type: text/html"
print
print """<html>
  <head>
    <title>Purchase history</title>
  </head>
  <body>
    <h1>Purchase History</h1>"""

print "<p>you have a purchase history of:"
for i in history: "</p>"
   print"""  <body>
</html>"""

我在这个文件旁边有 customerlib 文件。知道如何解决吗?

4

1 回答 1

6
form=cgi.FieldStorage

FieldStorage是一个类,而不是一个对象。你需要实例化它来创建一个FieldStorage对象:

form=cgi.FieldStorage()

这是错误的,form["f_name"]因为 form 当前是 的类的别名FieldStorage,而不是类型的对象FieldStorage。通过实例化它,它正在做你认为它应该做的事情。

查看cgi 模块文档以获取有关如何使用 CGI 模块的更多详细信息。

于 2012-04-04T22:51:12.153 回答