【问题标题】:Flask SqlAlchemy how to call filter_by with **kwargs and column like expressionsFlask SqlAlchemy 如何使用 **kwargs 和类似列的表达式调用 filter_by
【发布时间】:2017-03-21 15:09:28
【问题描述】:

我正在尝试动态过滤对我的数据库的查询,我使用

List = mytable.query.filter_by(**kwargs).order_by(desc(inscrits.id)).all()

其中的列是一个地址,我想使用表达式 Like %partof address%

过滤该地址

所以我做的是这个

        if (request.form.get('Address')):
            kwargs['Address'] = 'Address.Lik(%'+request.form.get('Address')+'%)'

它没有按预期工作,如果可能的话我该怎么做?

谢谢

【问题讨论】:

    标签: python flask flask-sqlalchemy flask-wtforms


    【解决方案1】:

    您需要查询filter 方法。它接收 SQLAlchemy 条件表达式的列表。您的示例将如下所示:

    args = []
    if (request.form.get('Address')):
        args.append(mytable.address.like('%%%s%%' % request.form.get('Address')))
    # Here will be another possible arguments
    items = mytable.query.filter(*args).order_by(desc(inscrits.id)).all()
    

    【讨论】:

    • '%{}%'.format(request.form.get('Address')) 会更清楚一点,虽然是一样的。
    猜你喜欢
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 2018-11-05
    • 2022-09-28
    • 2017-04-02
    • 2011-01-08
    相关资源
    最近更新 更多