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

l00*_*ake 3 python put flask flask-restful

我正在使用 Flask 和 Flask-Restful 创建 RESTful API,但遇到了 PUT 请求和参数的问题。我有一个 JSON 文件,其中包含:

{
    "checked": 1465628401,
    "number": 21600,
}
Run Code Online (Sandbox Code Playgroud)

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

现在,我将 RequestParser 定义为:

parser = reqparse.RequestParser()
Run Code Online (Sandbox Code Playgroud)

并添加每个参数,例如:

parser_status.add_argument('checked', type=int)
parser_status.add_argument('number', type=int)
Run Code Online (Sandbox Code Playgroud)

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

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

Wom*_*atz 5

文档说您可以添加默认值

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

所以像这样使用它:

parser_status.add_argument("checked", type=int, default=MY_DEFAULT_VALUE)
Run Code Online (Sandbox Code Playgroud)