Python脚本中发生错误
我在用Apache服务器实现一个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 = '不可索引'
我该如何解决这个问题呢?谢谢。
2 个回答
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
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()
上面的代码不会报错。