我想使用QSqlTableModel
为我提供过滤后的数据,其中过滤器来自用户输入。我知道我可以在没有WHERE
到WHERE
的情况下传递QSqlTableModel.setFilter
条款。然而,该方法看起来非常宽松(例如,它可以run on into ORDER BY
clauses)。
如何转义用户提供的任意字符串或正则表达式,将其作为过滤器传递给QSqlTableModel.setFilter
?如果我的数据库中有Little Bobby Tables,我希望用户能够找到他,我应该为escape
使用什么?
QSqlTableModel.setFilter("name REGEXP {:}".format(
escape(
"Robert'); DROP TABLE Students; --"))