【问题标题】:How to check for empty JSON field in flask reqparse for a post request?如何检查烧瓶 reqparse 中的空 JSON 字段以获取发布请求?
【发布时间】:2016-08-10 20:57:33
【问题描述】:

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

我试过了:

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

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

【问题讨论】:

    标签: python json flask flask-restful


    【解决方案1】:

    通过查看reqparse documentationhow 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'] 可以返回一个数组,我会小心以下边缘情况。

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

    所以最好按照

    的方式做一些事情
    args = self.parser.parse_args()
    names = args['name']
    for name in names:
        if not name:
            # if not truthy 
    

    【讨论】:

      【解决方案2】:
      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 中提到了这个

      【讨论】:

        猜你喜欢
        • 2021-12-30
        • 2022-01-25
        • 2014-07-23
        • 2017-08-24
        • 2018-05-17
        • 1970-01-01
        • 1970-01-01
        • 2015-03-10
        • 2016-04-21
        相关资源
        最近更新 更多