使用适当的消息解析Flask Restful请求

时间:2016-03-26 21:51:08

标签: api rest flask flask-restful

我正在使用Flask Restful的reqparse接口来解析请求参数。我有必要的日期字段,我必须执行验证

parser = reqparse.RequestParser(bundle_errors=True)
parser.add_argument('date',type=date_type,required=True,help='date cannot be blank')
args = parser.parse_args()

我已经定义了自定义date_type类型,用于验证可以使用python-dateutil包解析该字符串到目前为止

def date_type(date_str):
  try:
      return parser.parse(date_str)
  except:
      raise ValueError('Not a valid date format')

我想返回相应的消息,如果缺少日期字段或日期不是有效日期但是使用add_argument,我只允许只有一条帮助消息。 add_argument是否允许在丢失和无效数据类型事件的情况下使用不同的消息。

2 个答案:

答案 0 :(得分:1)

枝,

我认为你应该尝试marshmallow

它将处理无效或缺失的数据。

此外,flask-restful文档还指出ReqParse将在即将发布的版本中删除。

答案 1 :(得分:1)

正如烧瓶文件所建议的那样,我必须使用webargs解析我的请求,在幕后它使用marshmallow。 这是一个示例示例,可以帮助任何想要使用它的人

from webargs import fields
from webargs.flaskparser import use_args

user_args={
    'user_id':fields.Int(required=True),
    'date':fields.DateTime(required=True)),
    'start_date':fields.DateTime(required=False)
    }


class User(Resource):
    #method_decorators = [requires_auth]
    @use_args(user_args)
    def get(self,args):
    return {"hello":"world"}