如何將SQL where子句字符串轉換爲sqlalchemy查詢?我假設我已經知道桌子了。從字符串構建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)
標記大火,因爲ODO可能是我所需要的。
是的我知道你可以執行,但你需要一個完整的SQL語句。我只有聲明的WHERE部分。 – postelrich
您正在使用哪種版本的SQLAlchemy?我們的應用程序仍然運行一個很舊的(0.5.8),但我曾嘗試類似'session.query(Table).filter(where_str)'並且它工作了 –
我使用的是1.0.6,並且您是對的。雖然它可以工作,但它會直接提供使用字符串的警告,並建議使用http://docs.sqlalchemy.org/en/rel_1_0/core/sqlelement.html#sqlalchemy.sql.expression.text,例如'session.query(表).filter(文本(where_str))'。爲了重申Matheus所說的話,讓你的api接受一個SQL字符串並不是很安全,但這是一個單獨的主題。 – postelrich