如何在python cgi中迭代表单值?新手
假设我有一个有多个字段的表单。在我的cgi中,我使用了所有的值如何在python cgi中迭代表单值?新手,python,cgi,Python,Cgi,假设我有一个有多个字段的表单。在我的cgi中,我使用了所有的值 res1 = form.getvalue("opt_1") res2 = form.getvalue("opt_2") res3 = form.getvalue("opt_3") res4 = form.getvalue("opt_4") res5 = form.getvalue("opt_5") ... ... res100 = form.getvalue("opt_100") 在我的cgi中,我使
res1 = form.getvalue("opt_1")
res2 = form.getvalue("opt_2")
res3 = form.getvalue("opt_3")
res4 = form.getvalue("opt_4")
res5 = form.getvalue("opt_5")
...
...
res100 = form.getvalue("opt_100")
在我的cgi中,我使用for循环来获取值
for i in range(1, 100):
res[i] = form.getvalue('opt_[i]')
print res[i]
我收到一个错误:NameError:未定义全局名称“res”看起来您尚未定义
res
,请先定义它:
res = []
for i in range(1, 100):
res.append(form.getvalue('opt_%d'%i))
print res[i-1]
其中res是一个列表,包含
form.getvalue('opt_i')
s的结果。看起来您还没有定义res
,请先定义它:
res = []
for i in range(1, 100):
res.append(form.getvalue('opt_%d'%i))
print res[i-1]
其中res是一个列表,包含
form.getvalue('opt_i')
s的结果。看起来您还没有定义res
,请先定义它:
res = []
for i in range(1, 100):
res.append(form.getvalue('opt_%d'%i))
print res[i-1]
其中res是一个列表,包含
form.getvalue('opt_i')
s的结果。看起来您还没有定义res
,请先定义它:
res = []
for i in range(1, 100):
res.append(form.getvalue('opt_%d'%i))
print res[i-1]
其中res将是一个包含
form.getvalue('opt_i')
s结果的列表。循环存在两个问题:首先,res
还不存在,因此尝试分配给它的项将不起作用。第二,如果您首先将其创建为空列表,则无法通过写过末尾来扩展它
改为使用列表同时修复这两个问题:
res = [form.getfirst('opt_{}'.format(i)) for i in range(1, 100)]
这会将opt_1
的值置于res[0]
,依此类推-如果这是一个问题,您可以在其开头添加一个虚拟元素:
res = [None] + [form.getfirst('opt_{}'.format(i)) for i in range(1, 100)]
或者改用字典:
res = {i: form.getfirst('opt_{}'.format(i)) for i in range(1, 100)}
请注意,根据,应该避免使用
getvalue
,因为它可能会根据用户输入返回字符串或列表。使用form.getfirst
来保证您将拥有一个字符串。您的循环有两个问题:第一,res
还不存在,因此尝试分配给它的项将不起作用。第二,如果您首先将其创建为空列表,则无法通过写过末尾来扩展它
改为使用列表同时修复这两个问题:
res = [form.getfirst('opt_{}'.format(i)) for i in range(1, 100)]
这会将opt_1
的值置于res[0]
,依此类推-如果这是一个问题,您可以在其开头添加一个虚拟元素:
res = [None] + [form.getfirst('opt_{}'.format(i)) for i in range(1, 100)]
或者改用字典:
res = {i: form.getfirst('opt_{}'.format(i)) for i in range(1, 100)}
请注意,根据,应该避免使用
getvalue
,因为它可能会根据用户输入返回字符串或列表。使用form.getfirst
来保证您将拥有一个字符串。您的循环有两个问题:第一,res
还不存在,因此尝试分配给它的项将不起作用。第二,如果您首先将其创建为空列表,则无法通过写过末尾来扩展它
改为使用列表同时修复这两个问题:
res = [form.getfirst('opt_{}'.format(i)) for i in range(1, 100)]
这会将opt_1
的值置于res[0]
,依此类推-如果这是一个问题,您可以在其开头添加一个虚拟元素:
res = [None] + [form.getfirst('opt_{}'.format(i)) for i in range(1, 100)]
或者改用字典:
res = {i: form.getfirst('opt_{}'.format(i)) for i in range(1, 100)}
请注意,根据,应该避免使用
getvalue
,因为它可能会根据用户输入返回字符串或列表。使用form.getfirst
来保证您将拥有一个字符串。您的循环有两个问题:第一,res
还不存在,因此尝试分配给它的项将不起作用。第二,如果您首先将其创建为空列表,则无法通过写过末尾来扩展它
改为使用列表同时修复这两个问题:
res = [form.getfirst('opt_{}'.format(i)) for i in range(1, 100)]
这会将opt_1
的值置于res[0]
,依此类推-如果这是一个问题,您可以在其开头添加一个虚拟元素:
res = [None] + [form.getfirst('opt_{}'.format(i)) for i in range(1, 100)]
或者改用字典:
res = {i: form.getfirst('opt_{}'.format(i)) for i in range(1, 100)}
请注意,根据,应该避免使用
getvalue
,因为它可能会根据用户输入返回字符串或列表。使用form.getfirst
来保证您将拥有一个字符串。res[i]=form.getvalue()
在res没有索引i
时不起作用。您需要执行res.append
来增加列表,然后每个项目实际上将位于res[i-1]
@lvc抱歉,我错过了。非常感谢<当res还没有索引时,code>res[i]=form.getvalue()将不起作用。您需要执行res.append
来增加列表,然后每个项目实际上将位于res[i-1]
@lvc抱歉,我错过了。非常感谢<当res还没有索引时,code>res[i]=form.getvalue()将不起作用。您需要执行res.append
来增加列表,然后每个项目实际上将位于res[i-1]
@lvc抱歉,我错过了。非常感谢<当res还没有索引时,code>res[i]=form.getvalue()将不起作用。您需要执行res.append
来增加列表,然后每个项目实际上将位于res[i-1]
@lvc抱歉,我错过了。谢谢!