1

我有一个 Flask 应用程序(构建在 Flask Restx 资源类之上),并且我创建了几个 try/except 语句来验证我的应用程序的输入。

为了使应用程序的代码更具可读性,我想将这些检查封装在一个单独的函数中。但这引入了正确返回错误消息和状态码以便 API 处理的挑战。

有没有办法让函数通过调用函数返回?

# minimal example
from flask import Flask
from flask_restx import Api, Resource

app = Flask(__name__)
api = Api(app)

def validate_input(a):
    try:
        assert a < 10
    except:
        return "a >= 10", 500

@api.route("/<a>")
class BatchScorer(Resource):
    def get(self, a):

        # validate_input(a):

        # instead of?

        try:
            assert a < 10
        except:
            return "a >= 10", 500


if __name__ == "__main__":
    app.run(debug=True)
4

2 回答 2

1

当您在函数中返回两件事时。所以你可以调用函数并返回它,它会返回。

[...]
return validate_input(a)
于 2021-07-20T13:24:29.450 回答
1

向检查函数添加返回值,并简单地返回该函数返回的值

from flask import Flask, Response
from flask_restx import Api, Resource

app = Flask(__name__)
api = Api(app)

def validate_input(a):        
    if (a < 10):
        return Response(response="a < 10", status=200)
    else:
        return Response(response="a >= 10", status=500)

@api.route("/<a>")
class BatchScorer(Resource):
    def get(self, a):
        return validate_input(a)


if __name__ == "__main__":
    app.run(debug=True)
于 2021-07-20T13:25:03.017 回答