gpt4 book ai didi

flask - flask 自定义错误处理的上传功能

转载 作者:行者123 更新时间:2023-12-03 08:46:09 29 4
gpt4 key购买 nike

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

enter image description here
enter image description here

错误处理代码如下:

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

上传代码如下:
@users.route("/oisdate_upload", methods=['GET', 'POST'])
@login_required
def doimport_ois_date():
msg=None
if request.method == 'POST':

def OIS_date_init_func(row):
#c.id = row['id']
c = Ois_date(row['date'],row['on'],row['m1'],row['m2'],row['m3'],row['m6'],row['m9'],row['y1'],row['y2'],row['y3'],row['y4'],row['y5'],row['y7'],row['y10'])
return c

request.save_book_to_database(
field_name='file', session=db.session,
tables=[Ois_date],
initializers=[OIS_date_init_func])
msg = "Successfully uploaded"
#return redirect(url_for('users.doimport_ois_date'), code=302)
if((Ois_date.query.order_by(Ois_date.date.desc()).first()) is not None):
date_query = Ois_date.query.order_by(Ois_date.date.desc()).first()
start_date = date_query.date
date_query1 = Ois_date.query.order_by(Ois_date.date.asc()).first()
end_date = date_query1.date

return render_template('OISdate_upload.html',msg=msg, start_date=start_date,end_date=end_date)

我无法弄清楚如何正确捕获错误并处理它,任何反馈将不胜感激。

最佳答案

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

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

关于flask - flask 自定义错误处理的上传功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53478181/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com