不区分大小写的 Flask-SQLAlchemy 查询 [英] Case Insensitive Flask-SQLAlchemy Query

查看:31
本文介绍了不区分大小写的 Flask-SQLAlchemy 查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm using Flask-SQLAlchemy to query from a database of users; however, while

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

会回来

<User u'ganye'>

正在做

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

返回

None

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

I'm wondering if there's a way to query the database in a case insensitive way, so that the second example will still return

<User u'ganye'>

推荐答案

您可以通过在过滤器中使用 lowerupper 函数来实现:

You can do it by using either the lower or upper functions in your filter:

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

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

Another option is to do searching using ilike instead of like:

.query.filter(Model.column.ilike("ganye"))

这篇关于不区分大小写的 Flask-SQLAlchemy 查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆