首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不区分大小写的Flask-SQLAlchemy查询

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

Stack Overflow用户
提问于 2013-05-16 03:08:15
回答 2查看 61.5K关注 0票数 119

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

代码语言:javascript
复制
user = models.User.query.filter_by(username="ganye").first()

将会返回

代码语言:javascript
复制
<User u'ganye'>

正在做什么

代码语言:javascript
复制
user = models.User.query.filter_by(username="GANYE").first()

返回

代码语言:javascript
复制
None

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

代码语言:javascript
复制
<User u'ganye'>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-16 03:44:14

您可以通过在过滤器中使用lowerupper函数来完成此操作:

代码语言:javascript
复制
from sqlalchemy import func
user = models.User.query.filter(func.lower(User.username) == func.lower("GaNyE")).first()

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

代码语言:javascript
复制
.query.filter(Model.column.ilike("ganye"))
票数 236
EN

Stack Overflow用户

发布于 2019-05-08 13:36:06

你可以做到

代码语言:javascript
复制
user = db.session.query(User).filter_by(func.lower(User.username)==func.lower("GANYE")).first()

或者您可以使用ilike函数

代码语言:javascript
复制
 user = db.session.query(User).filter_by(User.username.ilike("%ganye%")).first()
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16573095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档