用python/Flas将html表单解析为dict列表

2024-10-03 21:28:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我是网络编程新手,这是我的第一个问题,所以希望我问的是正确的方法。我正在构建一个简单的调查生成器(类似于googleforms或survey monkey),我有一个允许用户向问题添加选项的web表单。每个选项有两个字段,“label”和“value”。表单如下所示:

    Option One
           ------------------           ------------------
    Label: |                |   Value:  |                |
           ------------------           ------------------

    Option Two
           ------------------           ------------------
    Label: |                |   Value:  |                |
           ------------------           ------------------
    ...
    ...
    ... // user can "add option" and additional "rows" will appear in the form

[ SUBMIT ]

我使用了一个基本的web表单,如下所示:

^{pr2}$

我成功地请求.窗体并且可以访问dict中的每个变量。但它当然是一个单一的平面dict:

[{'label_1': 'labelone', 'value1': 'valueone', 'label_2': 'label two'}]

等等。我想要一份这样的口述清单:

[ {'label': 'labelone', 'value': 'valueone'}, {'label': 'labeltwo', 'value': 'valuetwo'}]

我想出了几种老套的方法来实现这一点,但都需要预先了解表单选项的数量和类型。我宁愿找一个更灵活的解决办法。在

这里有什么最佳实践吗?很多网站都是这样做的,所以我想我错过了一个最佳实践。在


Tags: 方法网络web表单value选项编程label
2条回答

这个怎么样?在

l = [{'label_1': 'labelone', 'value_1': 'valueone', 'label_2': 'label two', 'value_2':'v2'}]

values = int(len(l[0])/2)
dicts = []
for i in range(values):
    label_name = 'label_%s' % (i+1)
    value_name = 'value_%s' % (i+1)
    dicts.append({'label':l[0][label_name], 'value':l[0][value_name]})

也许是html数组?(我不知道它们的正式名称)与^{}结合在一起

<p><input type="text" name="user_label[0]">
     <input type="text" name="user_value[0]"></p>
  <p><input type="text" name="user_label[1]">
     <input type="text" name="user_value[1]"></br></p>

我想这可以做点什么

^{pr2}$

您可以将它们压缩在一起以创建lables: values

我还没有用烧瓶测试过这个

相关问题 更多 >