将HTML表单值解释为Flask视图中的列表

时间:2015-12-16 20:58:12

标签: python html flask

我想将隐藏的表单字段设置为值列表,然后在提交表单时使用列表。但是,该值似乎是一个字符串而不是列表。我如何使用获取列表作为列表传递给表单?

<form method="POST" action="{{ url_for('action') }}">
    <input type="hidden" name="list" value="{{ some_list }}"/>
    <input type="submit">
</form>
@app.route('/action', methods=['POST'])
def action():
    elements = request.form['list']
    list_length = len(elements)
    ...

1 个答案:

答案 0 :(得分:2)

从客户端提交HTML表单时,它会将字段值作为字符串发送。假设您将在此字段中输入的值看起来像abc, def, 123, foo,那么您只需将,上的值拆分并删除任何周围的空格。

elements = [y for y in (x.strip() for x in request.form['list'].split(',')) if y]

您可能正在寻找的是会话,而不是在隐藏的表单字段中来回传递/解析值。这允许您跨请求存储JSON可序列化值。

elements = session.get('elements', [])  # get existing data
elements.append(len(data))  # do something to the data
session['elements'] = data  # store the new data