从字符串构建sqlalchemy查询

pos*_*ich 2 python sqlalchemy blaze

如何将sql where子句字符串转换为sqlalchemy查询?我假设我已经知道了桌子.

我正在构建一个Angular webapp,它可以访问Flask API以获取数据.Flask正在使用sqlalchemy来查询数据库.来自SQL的jQuery-QueryBuilder(http://querybuilder.js.org/plugins.html#import-export)将过滤器导出为原始SQL,我希望将其传递回api,parse和query.

例如:

where_str = "name LIKE '%BOB%' AND fruit != 'pineapple'"
Run Code Online (Sandbox Code Playgroud)

将被转换为:

session.query(Table).filter(Table.name.like('%BOB%')).filter(Table.fruit != 'pineapple)
Run Code Online (Sandbox Code Playgroud)

标记火焰因为odo可能是我需要的.

Mat*_*ini 6

你可以尝试执行session.query(Table).filter(where_str).它在SQLAlchemy v0.5.8上对我有用.您还可以构建整个SQL语句字符串,并使用Connection.execute()方法执行它.无论哪种方式,将SQL语句作为字符串直接从网页传递到应用程序都是非常危险的.