Python表单处理问题

时间:2011-08-10 21:18:14

标签: python cgi

我是新手。我想知道如何在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']中的

会给我定义键值对的数组,我需要这样的东西。

感谢。

1 个答案:

答案 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']