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')))
请注意,可能的通配符不会转义,因此,如果名称中包含通配符,它们的行为将与此相同。谢谢您的帮助,但这对我不起作用。我可以为员工查看您的模型对象吗?我也许能帮上点忙。