2012-04-04 4 views
1

私はこのコードを持っていると私はこのエラーを取得するので、私はそれを実行することができませんでしたが: Pythonの「classobj」エラー

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>""" 
: 、ここでは私のコードである「例外TypeError 『classobj』オブジェクトは、添字化されていません」

私はこのファイルの横にcustomerlibファイルを持っています。どのようにそれを修正するための任意のアイデア?

答えて

6
form=cgi.FieldStorage 

FieldStorageはクラスでありオブジェクトではありません。あなたはFieldStorageオブジェクトを作成し、それをインスタンス化する必要があります。

form=cgi.FieldStorage() 

フォームは現在FieldStorageのクラスのエイリアス、ないタイプFieldStorageの目的であるので、それはform["f_name"]にerroringされます。それをインスタンス化することによって、それはあなたがしなければならないと思っていることをしています。

CGIモジュールの使用方法の詳細については、cgi module documentationを参照してください。