Python脚本中发生错误

时间:2014-03-11 08:53:20

标签: python apache cgi

我用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'

如何解决此问题。 感谢。

2 个答案:

答案 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()

上面的代码不会引发错误