Flask rest plus Parser似乎不适用于帖子

时间:2018-04-18 16:18:00

标签: python flask flask-restplus

我已经写了下面的代码端点来发布从前端收到的数据,我已经实现了相同的方式获取它并且它可以工作但不适用于发布

parser = reqparse.RequestParser()
parser.add_argument("update", type=bool, help="Update the data set") 
parser.add_argument(
"set_name", type=str, help="Name of the set you want to add

@api.route("/add_set")
 class AddNewSet(Resource): 
@api.doc(parser=parser) 
def post(self):
     """ endpoint that handles request for deploying services 
         :return: (int) deployed service id from database. 
     """

          print "Hello hellooo"
          args = parser.parse_args() 
          print "doink"

抛出错误:

{" message":"无法解码JSON对象:无法解码JSON对象"  }

文字" doink"不打印,所以我怀疑parser.parse_args()没有按预期工作我相信或我做错了什么。

1 个答案:

答案 0 :(得分:-1)

默认情况下,RequestParser从request.json和request.values中查找args

请参见:https://flask-restplus.readthedocs.io/en/stable/parsing.html#argument-locations

对于您的代码,我没有尝试过为发布定义args的方法,我这样做是

@api.expect(api.model( 'ModelName', dict( arg1 = fields.String(required=True), arg2 = fields.Integer, ) )) def post(self): return {'result': 'success'}

我还建议给出一个明确的return子句,甚至return None