简单地说。如果我做了类似
的事情Conn.execute(RAW_SQL)
sqlalchemy会对此进行清理以防止sql注入,还是只是执行它? 感谢
答案 0 :(得分:3)
不,如果您使用插值的值传入原始SQL,SQL Alchemy将不清理它。它只会被执行。
始终使用查询参数,至少。
字符串对象直接传递给底层数据库连接实现;它 支持查询参数,但您必须使用特定于处理数据库通信的库的参数样式。
您可以使用sqlalchemy.sql.expression.text()
生成具有实现不可知查询参数语法的SQL。