3

我需要将三个 URL 映射到单个视图函数。

@app.route('/items/', defaults={"item_name": "all", "status": "available"}, methods=['GET', 'POST'])
@app.route('/items/<item_name>/')
@app.route('/items/<item_name>/<status>')
def items_list(item_name, status):
    --- code goes here ----

第一个和最后一个 URL 有效。即,/items/ - item_name 和 status 将具有默认值。和 /items/some_item_name/unavailable/ - 它使用传递的值。

当我尝试 /items/some_item_name/ - 它失败并出现此错误“TypeError:item_list() 恰好需要 2 个参数(1 个给定)”,我理解为函数需要两个参数。这不是正确的做法吗?为什么“状态”不采用默认值“可用”。因为当我们发出 /items/ 时,'item_name' 和 'status' 采用默认值。当使用 /items/some_item_name/ 时,我期待同样的事情发生。

这里出了什么问题?谢谢你的帮助..

4

1 回答 1

5

在函数中使用默认参数:

def items_list(item_name=None, status=None):
于 2013-05-22T05:40:50.517 回答