如何做一般"搜索栏"搜索多个SQLAlchemy模型

时间:2015-08-07 19:06:24

标签: python mysql flask sqlalchemy flask-sqlalchemy

我的应用有搜索栏。假设用户搜索了John Smith英国牛津大学'我想通过name' John Smith',location'英国'和education'牛津大学'。

以下是搜索' John Smith英国牛津大学的概述':

  • 使用name' John Smith',location'英国'来自数据库显示帐户。和education'牛津大学'。
  • 使用name' John Smith'显示帐户和education'牛津大学'
  • 使用name' John Smith'显示帐户和location'英国'
  • 使用name' John Smith'
  • 显示帐户

我找不到专门针对Flask-SQLAlchemy的任何资源,它们指定了如何执行此操作。我知道我必须使用.like(),但我不知道如何将其添加到Flask中的SQLAlchemy查询中。使用SQLAlchemy我可以做.where(column.like())但我不能在Flask-SQLAlchemy中。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:1)

您使用like()就像在SQLAlchemy中使用它一样:

User.query.filter(User.name.like("%John Smith%")).all()

或者您可以使用contains()

User.query.filter(User.name.contains('John Smith')).all()

答案 1 :(得分:0)

更好地使用ilike

User.query.filter(User.name.ilike("%John%")).all()