将未声明的参数保留为其默认值

时间:2016-06-21 18:28:50

标签: python flask put flask-restful

我正在使用Flask和Flask-Restful创建一个RESTful API,并且遇到了PUT请求和参数的问题。我有一个包含以下内容的JSON文件:

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

当用户发送"/api/v1/status?checked=10"时,它会更改已检查的值,但会将 number 设置为null。我想知道是否有一种方法我可以拥有它,以便如果用户没有指定该参数,它将保持为其当前值。

现在,我将RequestParser定义为:

parser = reqparse.RequestParser()

并添加每个参数,如:

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

所以我的问题是,有没有办法默认每个JSON密钥保持当前值,除非PUT请求中存在参数?

文档声明:另请注意:在请求解析器中声明但未在请求中设置的参数将默认为None。我想知道是否有办法更改该默认值。

1 个答案:

答案 0 :(得分:0)

documentation sais,您可以添加默认值。

Argument类以及add_argument函数接受default关键字参数,该参数本身确实默认为None

所以像这样使用它:

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