Python 在SQLAlchemy中的session.query和request.args.get中使用like运算符

Python 在SQLAlchemy中的session.query和request.args.get中使用like运算符,python,ajax,sqlalchemy,request,Python,Ajax,Sqlalchemy,Request,我能够使用以下查询,使用等于运算符从数据库中成功获取结果: return session.query(Employees).filter_by(EmployeeName=request.args.get('Name')) 员工是班里最重要的人 “Name”属性通过ajax调用填充 我不知道如何使用like运算符而不是equal to 我试过做这样的事,但没有用 return session.query(Employees).filter(Employees.EmployeeName.like(

我能够使用以下查询,使用等于运算符从数据库中成功获取结果:

return session.query(Employees).filter_by(EmployeeName=request.args.get('Name'))
员工是班里最重要的人

“Name”属性通过ajax调用填充

我不知道如何使用like运算符而不是equal to

我试过做这样的事,但没有用

return session.query(Employees).filter(Employees.EmployeeName.like(request.args.get('%Name%')))

看起来,
request.args.get('Name')
是返回名称的方法。在这种情况下,在名称周围放置
%
将从请求返回错误的(可能是空的)参数。相反,请尝试使用以下结果格式化字符串:

return session.query(Employees).filter(Employees.EmployeeName.like("%{0}%".format(request.args.get('Name')))

有关简单的
“%”比较的快捷方式,请使用
ColumnOperators提供的方法:

session.query(Employees).\
    filter(Employees.EmployeeName.contains(request.args.get('Name')))

请注意,可能的通配符不会转义,因此,如果名称中包含通配符,它们的行为将与此相同。

谢谢您的帮助,但这对我不起作用。我可以为员工查看您的模型对象吗?我也许能帮上点忙。