在请求中发送不同的数据类型时,python-RequestParser不返回错误

时间:2016-10-14 05:55:52

标签: python json parsing flask-restful

我创建了Flask应用程序,因为我正在使用RequestParser来检查输入字段的数据类型,如下所示

parser = reqparse.RequestParser()
parser.add_argument('article_id',type=str,required=True, help='SUP-REQ-ARTICLEID')
parser.add_argument('description',type=str,required=True, help='SUP-REQ-DESCRIPTION')
parser.add_argument('userid',type=str,required=True, help='SUP-REQ-USERID')

来自邮递员的json输入如下所示

{
    "article_id": 2,
    "description":"some description",
    "userid":1
}

所以在json请求中第一个和第三个字段是整数,在请求解析器中我提到的数据类型为“str”

当我运行应用程序并从邮递员发送请求时 - 请求正在处理并且不会在RequestParser验证中抛出任何错误

1 个答案:

答案 0 :(得分:3)

首先,Postman会根据您的数据创建常规HTTP帖子。 HTTP帖子如下所示:

article_id=2&description=some%20description&userid=1

没有类型信息,这是普通的旧URL编码。 Everything 是网址中的字符串,其中&=为分隔符。

所有RequestParser都可以为您转换类型,从字符串转换为其他类型。这也是为什么type=str是默认值的原因。解析器只会为您提供article_iduserid的字符串。

当参数无法转换为目标类型时,会发生错误。为type=int设置description,它会给您一个错误。