烧瓶自定义错误处理的上传功能

时间:2018-11-26 09:33:59

标签: flask error-handling pyexcel

我已经开发了一个上传表单,以将特定的.xlsx文件作为上传。要求是要处理上传非xlsx的任何异常(例如zip,exe文件)。我正在使用pyexcel库读取上传内容。我尝试创建以下代码来处理此异常:

enter image description here enter image description here

错误处理代码如下:

my_string = "wolfofwalstreet(2012)is a movie"

result = my_string.find('(')
print("Found", result)

,上传代码如下:

class FILE_TYPE_NOT_SUPPORTED_FMT(Exception):
pass

@app.errorhandler(FILE_TYPE_NOT_SUPPORTED_FMT)
def custom_handler(errrors):
app.logger.error('Unhandled Exception: %s', (errrors))
return render_template('400.html'), 400

我无法弄清楚如何正确捕获和处理错误,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

您有两种选择来处理此异常。

1)您直接从pyexcel包导入异常,并将其用作错误:

例如

from pyexcel.exceptions import FileTypeNotSupported
...
@app.errorhandler(FileTypeNotSupported)
...

2)或者,您可以将代码加载到要在电子表格中加载的位置,并放置在try-except块中并引发自定义错误。

from pyexcel.exceptions import FileTypeNotSupported

class CustomError(Exception)
    pass

@app.errorhandler(CustomError)
    # do something
    pass

@app.route('/upload_excel')
def upload_excel():
    try:
        function_where_you_load_excel()
    except FileTypeNotSupported:
        raise CustomError