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

问题描述 投票:0回答:1

我正在使用 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 请求中?

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

python flask put flask-restful
1个回答
5
投票

文档说你可以添加默认值。

Argument
类,因此
add_argument
函数接受一个
default
关键字参数,它本身确实默认为
None
.

所以像这样使用它:

parser_status.add_argument("checked", type=int, default=MY_DEFAULT_VALUE)
© www.soinside.com 2019 - 2024. All rights reserved.