我想将隐藏的表单字段设置为值列表,然后在提交表单时使用列表。但是,该值似乎是一个字符串而不是列表。我如何使用获取列表作为列表传递给表单?
<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)
...
答案 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