Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

exception for non existing parameter in FLASK

I have a form that sends parameters. In my form I have a checkbox. If my checkbox is not checked then I will not get any parameters.

If in my module I have :

var = request.form['mycheckbox']

and if my checkbox is not checked (the parameter is not passed)

Then in debug mode I get the error message :

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

Nothing tells me about what the error is.

I prevented the exception by using :

    try:
        var=request.form['checkbox']
    except:
        var=None

But can I not change the behavior of how Flask handles this case ?

like image 369
gpasse Avatar asked Jan 17 '12 14:01

gpasse


2 Answers

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

This will return None if the parameter is not defined.

like image 173
FogleBird Avatar answered Sep 30 '22 04:09

FogleBird


The reason for this is hidden in the flask documentation here: http://flask.pocoo.org/docs/api/#flask.Flask.trap_http_exception

I'm not sure why this behaviour isn't changed for debugging mode, but to get Flask to catch the BadRequestKeyError exceptions from werkzeug, you need to run something like this on your application object:

app.config['TRAP_BAD_REQUEST_ERRORS'] = True
like image 34
Chris AtLee Avatar answered Sep 30 '22 05:09

Chris AtLee