FLASK中非现有参数的异常

时间:2012-01-17 14:39:38

标签: python flask werkzeug

我有一个发送参数的表单。 在我的表格中,我有一个复选框。 如果我的复选框未被选中,那么我将不会获得任何参数。

如果在我的模块中我有:

var = request.form['mycheckbox']

如果未勾选我的复选框(参数未通过)

然后在调试模式下,我收到错误消息:

  

错误请求浏览器(或代理)发送了此服务器的请求   无法理解。

没有什么能告诉我这个错误是什么。

我使用:

阻止了异常
    try:
        var=request.form['checkbox']
    except:
        var=None

但我不能改变Flask如何处理这种情况的行为吗?

3 个答案:

答案 0 :(得分:15)

var = request.form.get('checkbox')

如果未定义参数,则返回None

答案 1 :(得分:8)

这里的原因隐藏在烧瓶文档中:http://flask.pocoo.org/docs/api/#flask.Flask.trap_http_exception

我不确定为什么调试模式没有改变这种行为,但要让Flask从werkzeug捕获BadRequestKeyError异常,你需要在你的应用程序对象上运行类似的东西:

app.config['TRAP_BAD_REQUEST_ERRORS'] = True

答案 2 :(得分:0)

我在验证单个布尔字段时遇到了类似的问题。

我使用remember = form.rememberme.data代替request.form['remember_me']

解决了这个问题