2016-06-21 62 views
0

我正在使用Flask和Flask-Restful创建一个RESTful API,并且遇到了PUT请求和参数的问题。我有一个包含JSON文件:将未声明的参数保留为默认值

{ 
    "checked": 1465628401, 
    "number": 21600, 
} 

当用户发送"/api/v1/status?checked=10"它改变了检查值像它应该,但设置为null。我想知道是否有一种方法,我可以拥有它,以便如果用户不指定该参数,它保持为当前值。

现在,我定义我RequestParser像:

parser = reqparse.RequestParser() 

并添加每个参数,如:

parser_status.add_argument('checked', type=int) 
parser_status.add_argument('number', type=int) 

所以我的问题是,有没有办法为默认每个JSON钥匙留为它的当前值,除非参数在PUT请求中出现?

该文档状态:另请注意:在您的请求解析器中声明但未在请求中设置的参数本身将默认为无。林想知道是否有办法改变这种默认。

回答

0

您可以添加默认值的documentation

Argument类和因此add_argument函数接受default关键字参数,其本身确实默认为None

因此,使用这样的:

parser_status.add_argument("checked", type=int, default=MY_DEFAULT_VALUE)