如何将sql where子句字符串转换为sqlalchemy查询?我假设我已经知道了桌子。
我正在构建一个Angular webapp,它可以访问Flask API以获取数据。 Flask正在使用sqlalchemy来查询数据库。来自SQL(http://querybuilder.js.org/plugins.html#import-export)的jQuery-QueryBuilder将过滤器导出为原始SQL,我希望将其传递回api,parse和query。
例如:
where_str = "name LIKE '%BOB%' AND fruit != 'pineapple'"
会转换为:
session.query(Table).filter(Table.name.like('%BOB%')).filter(Table.fruit != 'pineapple)
标记火焰,因为odo可能是我需要的。
答案 0 :(得分:6)
您可以尝试执行session.query(Table).filter(where_str)
。它在SQLAlchemy v0.5.8上对我有用。
您还可以构建整个SQL语句字符串,并使用Connection.execute()方法执行它。无论哪种方式,将SQL语句直接从网页传递到应用程序can be very dangerous。
答案 1 :(得分:-1)
您无需过滤两次即可添加AND,您可以这样做:
session.query(Table).filter(Table.name.like('%BOB%'), Table.fruit != 'pineapple)