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

我正在使用 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"))

https://stackoverflow.com/questions/16573095/

相关文章:

python - 负面 list 索引?

python - SQLAlchemy:如何过滤日期字段?

python - 管道子流程标准输出到变量

python - 有效地检查 Python/numpy/pandas 中的任意对象是否为 NaN?

python - 在 namedtuple 中输入提示

python - 在 TensorFlow 中使用预训练的词嵌入(word2vec 或 Glove)

python - 在系统范围内安装 pip 和 virtualenv 的官方 "preferred"

python - 向 Pandas 数据框插入一行

python - sqlite3.ProgrammingError : You must not u

python - 你如何检查一个数字是否可以被另一个数字整除?