考虑一个简单的应用程序,用户填写表格以将两个数相除,在路由中,表格数据进行处理(制成浮点数),然后作为参数传递给具有除法逻辑的python脚本函数。
由于除以0逻辑在终端中作为自定义消息处理。如何将这一自定义消息与500条错误消息一起发送回前端UI?尝试在此处制作一个宁静的烧瓶应用程序。
到目前为止,我可以中止并显示一条自定义消息,但不能显示从后端传播的消息。还研究了自定义错误处理,但我想编写外部python脚本以便能够编写自定义消息。
答案 0 :(得分:0)
您可以使用abort()
函数。来自docs:
将Flask用于Web API时,可以使用与上述相同的技术来返回对API错误的JSON响应。使用描述参数调用abort()。 errorhandler()会将其用作JSON错误消息,并将状态代码设置为404。
您可以这样实现
@app.route("/div")
def divide():
x, y = request.form['x'], request.form['y']
try:
result = x / y
except ZeroDivisionError:
abort(400, description="Your message here")
else:
# Proper response
从那里开始,重要的一步是正确地在前端捕获该消息。
答案 1 :(得分:0)
您可以使用Flask错误处理程序(错误代码)来管理错误并将其显示在前端。
@app.errorhandler(500)
def code_500(error):
return render_template("errors/500.html", error=error), 500
您可以将其他任何内容放入html模板。
您也可以直接调用code_500(error)
函数。
如果要自定义页面和消息(401、403、404等),则其他任何HTTP错误代码都适用相同的原理。
如果您在蓝图内,则可以使用app_errorhandler
。