2017-10-28 141 views
0

我能成功使用下面的查詢使用等於運算符來從數據庫中獲取結果:使用像運營商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%'))) 

回答

1

對於一個快捷方式簡單'%' || expr || '%'比較使用由ColumnOperators提供的contains()方法:

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

注意通配符的字符不轉義,因此如果名稱包含它們,它們將表現如此。

1

它看起來像request.args.get('Name')是你返回名字的方式。在這種情況下將%置於名稱附近將會從請求返回一個錯誤的(可能是空的)參數。相反,嘗試格式化字符串的結果:

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

謝謝你的幫助,但那對我不起作用。 – LinuxUser

+0

我可以看到員工的模型對象嗎?我可能會更好一些。 – bjdduck