Python/Flask: Return 调用函数的消息和状态代码?
Python/Flask: Return Message and Status Code to calling function?
我有一个 Flask 应用程序(构建在 Flask Restx 资源 class 之上)并且我创建了几个 try/except 语句来验证我的应用程序的输入。
为了使应用程序的代码更具可读性,我想将这些检查封装在一个单独的函数中。但这引入了 return 正确输入错误消息和状态代码的挑战,以便 API.
可以处理它
有没有办法通过调用函数来实现函数return?
# 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)
正如您在函数中 return 处理两件事一样。所以你可以调用函数和 return 它会 return.
[...]
return validate_input(a)
向检查函数添加一个 return 值,然后简单地 return 由该函数 return 编辑的值
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)
我有一个 Flask 应用程序(构建在 Flask Restx 资源 class 之上)并且我创建了几个 try/except 语句来验证我的应用程序的输入。
为了使应用程序的代码更具可读性,我想将这些检查封装在一个单独的函数中。但这引入了 return 正确输入错误消息和状态代码的挑战,以便 API.
可以处理它有没有办法通过调用函数来实现函数return?
# 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)
正如您在函数中 return 处理两件事一样。所以你可以调用函数和 return 它会 return.
[...]
return validate_input(a)
向检查函数添加一个 return 值,然后简单地 return 由该函数 return 编辑的值
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)