python-当在请求中发送不同的数据类型时,RequestParser 不返回错误
python-RequestParser is not returning error when different datatype is sent in request
我创建了 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 验证中抛出任何错误
首先,Postman 从您的数据创建一个常规的 HTTP post。 HTTP posts 看起来像这样:
article_id=2&description=some%20description&userid=1
没有类型信息,那是普通的旧 URL 编码。 Everything 是一个 URL 中的字符串,以 &
和 =
作为分隔符。
RequestParser 所能做的就是为您转换类型,从字符串到其他类型。这也是为什么 type=str
是默认值。解析器将简单地为您提供 article_id
和 userid
的字符串,仅此而已。
当参数不能转换为目标类型时会发生错误。设置 type=int
为 description
,它会给你一个错误。
我创建了 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 验证中抛出任何错误
首先,Postman 从您的数据创建一个常规的 HTTP post。 HTTP posts 看起来像这样:
article_id=2&description=some%20description&userid=1
没有类型信息,那是普通的旧 URL 编码。 Everything 是一个 URL 中的字符串,以 &
和 =
作为分隔符。
RequestParser 所能做的就是为您转换类型,从字符串到其他类型。这也是为什么 type=str
是默认值。解析器将简单地为您提供 article_id
和 userid
的字符串,仅此而已。
当参数不能转换为目标类型时会发生错误。设置 type=int
为 description
,它会给你一个错误。