Python 将三个URL路由到单个端点?使用烧瓶和Jinja2

Python 将三个URL路由到单个端点?使用烧瓶和Jinja2,python,flask,Python,Flask,我需要将三个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):

我需要将三个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 ----
@app.route('/items/',默认值={“item_name”:“all”,“status”:“available”},方法=['GET',POST'])
@app.route(“/items/”)
@app.route(“/items/”)
def项目列表(项目名称、状态):
---代码在这里----
第一个和最后一个URL都有效。i、 例如,/items/-item_名称和状态将具有默认值。 和/items/some\u item\u name/unavailable/-它使用传递的值

当我尝试/items/some\u item\u name/-时失败,错误为“TypeError:item\u list()正好接受2个参数(给定1个)”,我理解为函数需要两个参数。 这不是正确的做法吗?为什么“状态”不采用默认值“可用”。 因为当我们发布/items/时,“item_name”和“status”采用默认值。当使用/items/some\u item\u name/时,我希望发生同样的事情


这里出了什么问题?感谢您的帮助。

在函数中使用默认参数:

def items_list(item_name=None, status=None):

我使用默认值={“item_name”:“all”,“status”:“available”}。它是否不适用于所有app.route?。似乎不适用,您的错误表明正好需要2个参数(给定1个),如果您执行status=None,它必须工作。它正在工作。谢谢它是特定于URL的,如果我们使用“/items/”,默认值将如“defaults”dict中所示。对于“/items/”,我使用defaults dict作为默认值={'status':'available'}。