2

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

我正在构建一个 Angular webapp,它使用 Flask API 获取数据。Flask 正在使用 sqlalchemy 来查询数据库。jQuery-QueryBuilder fromSQL ( http://querybuilder.js.org/plugins.html#import-export ) 将过滤器导出为原始 SQL,我想将其传递回 api、解析和查询。

例如:

where_str = "name LIKE '%BOB%' AND fruit != 'pineapple'"

将转换为:

session.query(Table).filter(Table.name.like('%BOB%')).filter(Table.fruit != 'pineapple)

标记 blaze 因为 odo 可能是我需要的。

4

2 回答 2

7

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

于 2015-09-10T21:41:23.193 回答
-1

您无需过滤两次即可添加 AND,您可以这样做:

session.query(Table).filter(Table.name.like('%BOB%'), Table.fruit != 'pineapple)
于 2015-09-10T21:37:30.677 回答