使用烧瓶request
对象时,尝试访问不存在的表单arg - 即
request.args['keyThatDoesntExist']
将导致
"Bad Request, 400" error coming back to the client browser.
这个设计让我感到困扰,因为它会导致一个非常不透明的错误,它不会在问题发生时给出行号或者要调试其他任何内容。我不想使用request.args.get('keyThatDoesntExist')因为我不想在密钥不存在时得到错误而不是默认值。也就是说,我喜欢知道什么时候出错,而不是随着神秘的行为而出现。
有没有办法改变行为,以便在该行引发KeyError
而不是Bad Request
回来?
答案 0 :(得分:0)
您可以设置app.config['TRAP_BAD_REQUEST_ERRORS'] = True
- 在这种情况下,这些错误将像真正的错误一样处理。
但是,您应该考虑为什么Flask特别处理这些KeyErrors:如果用户向您发送垃圾,那么您的应用程序中不会出错。那么为什么它会因内部服务器错误以及可能出现错误报告电子邮件而失败(请记住,在生产中你不会运行烧瓶调试器,而且在调试模式下你会得到一个正确的错误)。