【问题标题】:Trying to make a query case insensitive in Flask-SQLAlchemy [duplicate]试图在 Flask-SQLAlchemy 中使查询不区分大小写 [重复]
【发布时间】:2022-01-20 11:33:59
【问题描述】:

如何让这个查询不区分大小写?

result = db.session.query(countries).filter_by(name=country,capital=capital).first()

顺便说一句,我正在使用 Flask SQL-Alchemy。我可以做到 db.func.lower() 但我还没有找到在我的线路中正确使用它的方法。

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    您应该使用filter 而不是filter_by

    from sqlalchemy import func
    
    result = db.session.query(countries).filter(
       func.lower(countries.name) == name.lower(),
       func.lower(countries.capital) == capital.lower()
    ).first()
    

    如果countries 是一个表(不是模型),您应该使用countries.c.name 语法。

    类似话题:Case Insensitive Flask-SQLAlchemy Query.

    【讨论】:

    • 非常感谢您的回答!你是对的。顺便说一句,我正在使用一张桌子!所以使用你展示的语法使它工作。顺便说一句,在您的代码中有 filter_by。这是最终为我工作的代码:result = db.session.query(countries).filter( db.func.lower(countries.c.name) == country.lower(), db.func.lower(countries.c.capital) == capital.lower() ).first()
    • 这是拼写错误。已更正
    猜你喜欢
    • 2013-05-10
    • 2022-01-07
    • 2018-06-02
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多