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

2020/12/06 23:32 · python ·  · 0评论

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

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

将返回

<User u'ganye'>

在做

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

退货

None

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

<User u'ganye'>

您可以使用过滤器中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"))

如果仅指定所需的列,则可以改善@plaes的答案,这将使查询更短:

user = models.User.query.with_entities(models.User.username).\
filter(models.User.username.ilike("%ganye%")).all()

上面的例子中的情况下是非常有用的一个功能需要使用瓶的jsonify对AJAX的目的,然后在你的JavaScript访问它使用data.result

from flask import jsonify
jsonify(result=user)

你可以做

user = db.session.query(User).filter_by(func.lower(User.username)==func.lower("GANYE")).first()

或者您可以使用ilike函数

 user = db.session.query(User).filter_by(User.username.ilike("%ganye%")).first()
本文地址:http://python.askforanswer.com/buqufendaxiaoxiedeflask-sqlalchemychaxun.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!