我是新手。我想知道如何在CGI中处理基于数组的字段?
<form name="frmLogin" method="get" action="">
Username: <input type="text" name="login[username]" /><br/>
Password: <input type="password" name="login[password]" /><br/>
<input type="submit" name="login[submit]" />
</form>
我有一张上面的表格。 如何将登录字段作为字典获取,其中密钥将是用户名,密码,提交及其相应的值。
我可以单独得到这个=&gt;形式[ “登录[用户名]”]。值 但是,如果我不知道密钥,即复选框[] 我是否需要处理帖子并通过手动编码进行操作,还是有其他方法可以做到这一点?
php $ _GET ['login']中的会给我定义键值对的数组,我需要这样的东西。
感谢。
答案 0 :(得分:0)
我认为cgi.FieldStorage
的方法与你在php中描述的方法类似。但是,考虑到您在字段名称上的 name [attr] 格式,您可以编写类似这样的内容来完成同样的事情:
def get(form, prefix):
output = {}
def parse(key):
name = key.split('[')[1].rstrip(']')
output[name] = form[key]
map(parse, [key for key in form.keys() if key.startswith(prefix)]
return output
所以,你的cgi看起来像是:
form = cgi.FieldStorage()
login_info = get(form, 'login')
print login_info['username']
print login_info['password']