如何检查 post 请求的 flask reqparse 中的空 JSON 字段?

How to check for empty JSON field in flask reqparse for a post request?

我需要使用 reqparse 检查 JSON 字段中的空字符串以获取 Flask 中的 post 请求。我可以用 flask reqparse 模块实现吗?

我试过了:

self.parser.add_argument('name', 
                 type=str, 
                 required=True, 
                 trim=True, 
                 location='json'
                )
self.parser.parse_args()

它正在检查 {"name":"xyz"} 中的名称字段是否存在,但是我也想检查空值 {"name":""} ,这样我就可以向用户抛出名称不能为空的错误.是否可以使用 reqparse 来做到这一点?

从查看 reqparse documentation and how to check for empty strings in python 你可以做类似...

args = self.parser.parse_args()
name = args['name']
if not name:
    # do your foo here if name is not truthy

因为 args['name'] 可以 return 数组,所以我会小心以下边缘情况。

[] == false
['foo'] == true
[' ', '   '] == true

所以最好按照

做一些事情
args = self.parser.parse_args()
names = args['name']
for name in names:
    if not name:
        # if not truthy 
def non_empty_string(s):
if not s:
    raise ValueError("Must not be empty string")
return s
parser.add_argument('name', required=True, nullable=False, type=non_empty_string)

我从关注 link

中引用了这个