一尘不染

不区分大小写的Flask-SQLAlchemy查询

flask

我正在使用Flask-SQLAlchemy从用户数据库中查询;但是,虽然

user = models.User.query.filter_by(username="ganye").first()

will return

<User u'ganye'>

doing

user = models.User.query.filter_by(username="GANYE").first()

returns

None

我想知道是否有一种以不区分大小写的方式查询数据库的方法,以便第二个示例仍然返回

<User u'ganye'>

阅读 511

收藏
2020-04-05

共1个答案

一尘不染

你可以使用过滤器中的lowerupper功能来完成此操作:

from sqlalchemy import func
user = models.User.query.filter(func.lower(User.username) == func.lower("GaNyE")).first()

另一种选择是使用ilike而不是进行搜索like

.query.filter(Model.column.ilike("ganye"))
2020-04-05