烧瓶中的参​​数列表:只读取第一个值 getlist()

use*_*883 6 python url curl parameter-passing flask

我想通过getlist()将列表作为参数传递给烧瓶。在这里阅读: REST API 最佳实践:如何接受参数值列表作为输入

你能帮助弄清楚为什么这个简单的代码无法读取列表参数 (skip_id) 吗?

def api_insight(path):
    import pdb
    skip_id = request.args.getlist('skip_id', type=None)
    print( 'skip_id', skip_id)
    pdb.set_trace()

curl http://myexample.com/<mypath>/?&skip_id=ENSG00000100030,ENSG00000112062  
# empty list


curl http://myexample.com/<mypath>/?&skip_id=[ENSG00000100030,ENSG00000112062]
# empty list

curl http://myexample.com/<mypath>/?&skip_id=ENSG00000100030&skip_id=ENSG00000
# only first value is read in list
Run Code Online (Sandbox Code Playgroud)

MrL*_*eeh 4

最后一种方法实际上应该有效。我刚刚在浏览器中尝试过。

http://localhost:5000/api?skip_id=ENSG000001000301&skip_id=ENSG00000
Run Code Online (Sandbox Code Playgroud)

给我

['ENSG00000100030', 'ENSG00000']
Run Code Online (Sandbox Code Playgroud)

然而,使用curl你会遇到这个&角色的麻烦,因为它会把任务放在后台(至少如果你在Linux上)。通过curl,您可以使用

curl -X GET -G http://localhost:5000/api?skip_id -d skip_id=ENSG00000100030 -d skip_id=ENSG00000
Run Code Online (Sandbox Code Playgroud)

得到你所描述的结果。