我创建flask应用程序,并使用2个按钮创建页面:
<form method="post">
<button id="clearChoices" type="submit" name="clear" value="yes"> Clear my choices</button>
<button id="NewMeeting" type="submit" name="meeting" value="yes"> New Meeting</button>
</form>
在app.py中,我通过函数获得了发帖请求:
@app.route("/favorites/", methods=['POST', 'GET'])
def favorites():
username = get_user_logged_in()
if username:
if request.method == 'POST':
details = request.form
clear_but = details['clear']
meeting_but = details['meeting']
if clear_but == 'yes':
clearChoices(username)
return redirect('/homepage')
if meeting_but == 'yes':
return redirect('/new_meeting')
return render_template('favorites.html', dogs=dogs)
return redirect('/login')
但是当我单击“清除我的选择”时,我得到一个错误:
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'meeting'
但是当我单击“新会议”时,我得到一个错误:
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'clear'
如何避免此错误?
答案 0 :(得分:0)
<form method="post">
<button id="clearChoices" type="submit" name="clear" value="yes"> Clear my choices</button>
<button id="NewMeeting" type="submit" name="meeting" value="yes"> New Meeting</button>
</form>
在此页面上,如果单击按钮,则只有该数据将通过post方法传递。因此,如果您单击“清除我的选择”按钮,则只有该数据将发送到下一页。像这样,{'clear':'yes'}。在烧瓶代码中,您有这两行,clear_but = details ['clear']和Meeting_but = details ['meeting']。如果您单击第一个按钮,它将通过keyError:开会,对于第二个按钮,错误将是keyError:清除。