python flask避免出现在路由中的函数参数,但不必要

时间:2014-07-20 16:18:15

标签: python flask

我有一个映射到某个模型相关路径的函数,比如这个

@app.route('/models/<model_id>/something', methods=['GET'])
@fill_model
def my_function(user, model):
    do_something();

@fill_model内部装饰器我从URL读取model_id,从数据库中获取模型实例并将其推送到my_function但是使用该表示法我得到以下错误'my_function() got an unexpected keyword argument 'model_id' < / p>

所以我可以将model_id添加到my_function,但我并不真的需要它,它会破坏代码。有人知道如何解决这个问题吗?

当然我可以改变路线,然后它会正常工作,但我认为这有点肮脏的解决方案

1 个答案:

答案 0 :(得分:0)

所以在我的情况下,我的fill_model装饰器只是将所有参数推送到我的函数和model_id是在这个参数中,而不是在函数签名中。所以需要做的是,它只是从传递给decorator中的函数的参数列表中删除model_id

@Thomas Orozco在评论中提供的正确答案非常感谢他。