不区分大小写的Flask-SQLAlchemy查询 [英] Case Insensitive Flask-SQLAlchemy Query
本文介绍了不区分大小写的Flask-SQLAlchemy查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
user = models.User.query.filter_by(username =ganye)。first()
会返回
< User u'ganye'>
<$首先()
(c $ c> user = models.User.query.filter_by(username =GANYE
返回
None
我想知道是否有方法以不区分大小写的方式查询数据库,所以第二个例子仍然会返回
< User u'ganye'>
解决方案
您可以使用 lower
或 upper
函数在您的过滤器中:
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 ))
I'm using Flask-SQLAlchemy to query from a database of users; however, while
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
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'>
解决方案
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()
Another option is to do searching using ilike
instead of like
:
.query.filter(Model.column.ilike("ganye"))
这篇关于不区分大小写的Flask-SQLAlchemy查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文