我使用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是否允许在数据类型事件丢失和无效的情况下具有不同的消息。
Hie,
我认为你应该试试棉花糖。
它将处理无效或丢失的数据。
此外,flask restful文档指出,ReqParse将在即将发布的版本中删除。
因此,根据flask restful文档的建议,我必须使用webargs来解析我的请求,在幕后它使用了棉花糖。这里有一个示例,可以帮助任何想要使用它的人
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"}