使用SQLAlchemy,我可以使用endswith
方法查询结果:
session.query(MyObject).filter(MyObject.uuid.endswith("z")).all()
与startswith
类似:
session.query(MyObject).filter(MyObject.uuid.startswith("a")).all()
contains
遵循相同的语法:
session.query(MyObject).filter(MyObject.uuid.contains('c')).all()
我想知道==
和!=
运算符是否可以用类似的语法替换。
所以,而不是:
session.query(MyObject).filter(MyObject.uuid=='cfbb4cdb57').all()
它会是这样的:
session.query(MyObject).filter(MyObject.uuid.is('cfbb4cdb57')).all()
答案 0 :(得分:1)
是
.is_()
和.isnot()
以及明确调用.__eq__()
。
但请注意,is
和==
为not the same in Python。来自PEP8:
与
None
等单身人士的比较应该始终使用is
或is not
,而不是等同运算符
所以,我认为您希望==
(不是__eq__
)用于非单身人士,is_()
用于与None
进行比较。
所谓的可查询属性的完整列表是here。