我用apache web server实现了cgi python脚本。 我有以下功能:
def check(form=None, key=''):
if form == None:
return -1
value = form.has_key(key)
if value == False:
return -1
return 0
这是我的标题:
“Content-Type:text / plain; charset = UTF-8”
但是当我运行它并且没有任何形式传递时,会显示以下错误。
Python脚本中出现问题。这是序列 函数调用按照它们发生的顺序导致错误。
此行value = form.has_key(key)
被标记为错误。
这是追溯,我看到fieldStorage没有创建存储密钥的字典:
/usr/lib/python2.7/cgi.py in has_key(self=FieldStorage(None, None, 'keyA=valA&keyB=valB&keyC=calC\x00\x00'), key='keyA') 587 """Dictionary style has_key() method.""" 588 if self.list is None: =>589 raise TypeError, "not indexable" 590 return any(item.name == key for item in self.list) 591 builtin TypeError = <type 'exceptions.TypeError'>
:不可索引 args =('不可索引',) message ='not indexable'
如何解决此问题。 感谢。
答案 0 :(得分:0)
我不确定你是如何执行check()
方法的,但我已经对它进行了测试,并且它对我来说效果很好。
#! /usr/bin/python
def check(form=None, key=''):
if form == None:
return -1
value = form.has_key(key)
if value == False:
return -1
return 0
def index():
return check()
输出:-1
答案 1 :(得分:0)
def check(form=None, key=''):
if form == None:
return -1
value = form.has_key(key)
if value == False:
return -1
return 0
if "__main__" == __name__:
check()
上面的代码不会引发错误