我有通过 HTTP 完美运行的 Flask 方法:
class PricePerPeriod(Resource):
args = {'period': fields.Int(required=True, validate=lambda val: val > 0),
'duration': fields.Int(required=True, validate=lambda val: val > 0)}
@use_kwargs(args)
def get(self, identifier_id, period, duration):
api.add_resource(PricePerPeriod, '/price/<int:identifier_id>/')
像这样的电话http://localhost:8080/price/21/?period=1&duration=60
但是,如果我尝试从代码中调用此类方法:
price_per_period = PricePerPeriod()
result = price_per_period.get(identifier_id, period, duration)
它在 webargs 检查参数时失败。
{"errors": {
"period": [
"Missing data for required field."
]
}}
我只能假设 @use_kwargs(args) 期望 args 被填写,在直接调用的情况下为空,因为参数直接传递给函数。
如何调用用@use_kwargs(args)
代码装饰的方法并将参数正确传递给它?