我需要将三个 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/ 时,我期待同样的事情发生。
这里出了什么问题?谢谢你的帮助..