我有一个类似于以下内容的表单:
Enter Name:
Enter Age:
[add more]
添加更多字段会复制名称和年龄输入,并且可以根据用户的需要单击多次。他们最终可能会提交50套名称和年龄数据。
如何将收到的数据发布到我的Pylons应用程序中时如何处理?我基本上需要做一些事情:
for name, age in postedform:
print name + ' ' + age
我遇到过formencode的variabledecode函数。但不能为我的生活弄清楚如何使用它:/
干杯。
答案 0 :(得分:1)
你会发布这样的东西(当然是URL编码的)
users-0.name=John
users-0.age=21
users-1.name=Mike
users-1.age=30
...
为用户0-N执行此操作,其中N是您拥有的用户数,零索引。然后,在通过variabledecode
运行之后,在Python端,您将拥有:
users = UserSchema.to_python(request.POST)
print users
# prints this:
{'Users': [{'name': 'John', 'age': '21'}, {'name': 'Mike', 'age': '30'}]}
值可能会因您在架构中进行的验证而有所不同。因此,为了得到你想要的东西,你会做:
for user in users.iteritems():
print "{name} {age}".format(**user)
<强>更新强>
要在字典中嵌入列表,您可以这样做:
users-0.name=John
users-0.age=21
users-0.hobbies-0=snorkeling
users-0.hobbies-1=billiards
users-1.name=Mike
...
等等。模式基本上重复:{name-N}
将第N个索引嵌入到列表中,从0开始。确保它以0开头并且值是连续的。 .
启动属性的开头,可以是标量,列表或字典。
这是Pylons-specific documentation如何使用formencode,请查看表6-3的示例。