在单个函数中包含sqlalchemy的filter和filter_by函数

时间:2013-06-24 11:50:00

标签: python sqlalchemy

我想将函数filter和filter_by包装成单个函数 并根据参数调用filter或filter_by。

该函数必须以这两种方式返回相同的方式运行:

MyModel.get(MyModel.mycolumn == 'value')
MyModel.get(mycolumn='value')

有办法做到这一点吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你可以根据参数是否作为关键字给出来实现:

def get(*args, **kwargs):
    if kwargs:
        return query.filter_by(**kwargs)
    else:
        return query.filter(*args)