也许我没有在文档中看到一些东西.
我想不只是处理一些http错误,但所有异常.原因 - 我想使用我自己的自定义逻辑记录它们(听起来像重新发明轮子,但我需要完全控制日志记录.我不希望服务器在异常情况下瘫痪,但仅限于特定请求的炸弹.
这就是我现在推出Flask的方式.这里app.run
启动服务器.每当发生异常时,如何指示它调用我的异常处理程序方法?
def main():
args = parse_args()
app.config['PROPAGATE_EXCEPTIONS'] = True
flask_options = {'port' : args.port}
if args.host == 'public':
flask_options['host'] = '0.0.0.0'
app.run(**flask_options)
if __name__ == '__main__':
_sys.exit(main())
Run Code Online (Sandbox Code Playgroud) 我正在用Flask写一个简单的REST服务。当我的代码中发生异常时,我会在浏览器中收到一条不错的错误消息和一个交互式调试器。但是,如果我从命令行(例如,使用curl)或在单元测试中调用该服务,但出现故障,我仍然会收到格式化(HTML)错误消息。我记得有时我会收到一条纯文本消息(基本上只是Python错误+追溯),而且我不知道Flask如何决定提供纯文本或HTML。
在没有浏览器的情况下,如何使Flask返回简单(非交互式,非HTML)错误消息?