为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python Cloud Function 中使用 errorhandler 返回 JSON

在 Python Cloud Function 中使用 errorhandler 返回 JSON

MM们 2021-12-29 10:29:47
我将 Python 用于 HTTP 云函数,并希望将默认错误处理程序设置为返回 JSON 而不是 HTML。from flask_expects_json import expects_jsonimport payment_orders_schemafrom flask import jsonify, Flaskschema = payment_orders_schema.schemaapp = Flask(__name__)@app.errorhandler(400)def bad_request(error):    return jsonify({'error': error.description}), 400@expects_json(schema)def add_payment_order(request, methods=['POST']):    request_json = request.get_json(silent=True)    if request_json:        return jsonify(request_json), 200首先,我不确定是否可以app在 Cloud Functions 中定义变量,其次,该变量@app.errorhandler不起作用,Cloud Functions 返回 HTML。有任何想法吗?
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

首先,我不确定是否可以app在 Cloud Functions 中定义变量

你不能。尽管 Cloud Functions 使用 Flask 在后台处理请求,但它不支持app像您在这里所做的那样设置您自己的 Flask WSGI 。

但是,您可以将其按原样部署到App Engine 标准 Python 3.7 运行时。您可能要考虑这样做。


查看完整回答
反对 回复 2021-12-29
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

与其捕捉400错误,这是一个BAD REQUEST错误,也许你可以尝试捕捉一个404错误,这是一个NOT FOUND错误。我认为这是您真正想要做的,因为404类型错误是当用户尝试导航到您网站上不存在的页面时收到的内容。尝试将您的错误处理程序更改为以下内容,看看是否有帮助:


@app.errorhandler(404)

def error_404(error):

    return jsonify({'error': error.description}), 404

希望这有帮助!


查看完整回答
反对 回复 2021-12-29
  • 2 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信