Flask 一组表单两个提交按钮时出错

一组表单里有两个提交按钮 <input type="submit">

<form action="{{ url_for('index') }}" method="post">
    <input type="submit" name="up" value="up">
    <input type="submit" name="down" value="down">
</form>

python 代码:

if request.method == 'POST':
    if request.form['up']:
        return redirect(url_for('index'))
    elif request.form['down']:
        return redirect(url_for('index'))

其中 up 这个可以正常提交,但是 down 这个就报错:

Bad Request The browser(or proxy) sent a request that this server could not understand.

怎么解决?

阅读 23.3k
4 个回答

什么意思,你要做什么?最后的返回不都是一样的。

而且 request.form[xx] 不是返回的逻辑判断值吧?

如果没有在在 form 中没有找到相应的数值,服务器直接返回当做错误请求返回。

你可以这样,把form改一下,然后直接判断值。

<form action="{{ url_for('index') }}" method="post">
<input type="submit" name="key" value="up">
<input type="submit" name="key" value="down">

这里会出错的原因是UP这个值在request.form里面没有的。

用 if "up" in request.form应该可以避免这个问题

新手上路,请多包涵

form里要先定义。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题