使用像运营商session.query在SQLAlchemy中与request.args.get
问题描述:
我能成功使用下面的查询使用等于运算符来从数据库中获取结果:使用像运营商session.query在SQLAlchemy中与request.args.get
return session.query(Employees).filter_by(EmployeeName=request.args.get('Name'))
员工是类
'Name'属性通过ajax调用填充
我不知道如何使用like运算符而不是等于?
我试图做这样的事情,但无济于事
return session.query(Employees).filter(Employees.EmployeeName.like(request.args.get('%Name%')))
答
对于一个快捷方式简单'%' || expr || '%'
比较使用由ColumnOperators
提供的contains()
方法:
session.query(Employees).\
filter(Employees.EmployeeName.contains(request.args.get('Name')))
注意通配符的字符不转义,因此如果名称包含它们,它们将表现如此。
答
它看起来像request.args.get('Name')
是你返回名字的方式。在这种情况下将%
置于名称附近将会从请求返回一个错误的(可能是空的)参数。相反,尝试格式化字符串的结果:
return session.query(Employees).filter(Employees.EmployeeName.like("%{0}%".format(request.args.get('Name')))
谢谢你的帮助,但那对我不起作用。 – LinuxUser
我可以看到员工的模型对象吗?我可能会更好一些。 – bjdduck