将Python代码应用于Sqlalchemy过滤器

时间:2015-06-03 00:16:36

标签: python mysql sqlalchemy

我试图弄清楚如何将python代码(例如拆分列表)应用到sqlalchemy过滤器。示例如下:我的数据库将全名存储为表中的字段。我想查询我的数据库中所有拥有给定名字的人。所以我想做的是:

User.query.filter(User.name.split()[0].lower() == 'henry'.lower())

当我尝试运行此查询时,出现错误:

AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with User.name has an attribute 'split'

split()lower()等python命令应用于sqlalchemy个查询的一般方法是什么?

1 个答案:

答案 0 :(得分:3)

SQLAlchemy正在构建一个SQL表达式,而不是Python表达式。您可以使用func对象将SQL函数应用于表达式。

from sqlalchemy import func
User.query.filter(func.lower(func.substring_index(User.name, ' ', 1)) == 'henry')