不区分大小写的 Flask-SQLAlchemy 查询 [英] Case Insensitive Flask-SQLAlchemy Query
本文介绍了不区分大小写的 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'>
推荐答案
您可以通过在过滤器中使用 lower
或 upper
函数来实现:
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屋!
查看全文