我正在尝试开发一个网站,用户在其中响应表单,然后网站处理该表单,然后以相同表单的新版本进行响应。由于某些原因,我第二次尝试提交表单时遇到以下错误:
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'name_0'
第一次提交时不会发生这种情况。如果我不得不猜测,那是因为第一次提交表单时,它是新副本,但是当我第二次尝试提供表单时,它仍然与第一份表单有联系。
这是我使用的代码的简化版本
def session():
form = RatingForm(request.form)
# first time form is submitted
if request.method == 'GET':
query_0 = request.args.get('exp_0')
query_1 = request.args.get('exp_1')
# SOME APPLICATION LOGIC
return render_template('results.html', session_id=session.id, \
data=data[0:5], badges=badges, form=form)
# subsequent times a form is served
elif request.method == 'POST':
name_0 = request.form['name_0']
name_1 = request.form['name_1']
session_id = request.form['session_id']
if not form.validate():
return "Input not properly validated.", 400
# SOME APPLICATION LOGIC
return render_template('results.html', session_id=session_id, \
data=data[0:5], badges=badges, form=form)