Python dispose de toutes sortes de bibliothèques pour s'interfacer avec les bases de données, ce qui permet de construire des requêtes SQL sans se soucier des injections SQL. Par exemple, avec sqlite3 :
for t in [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
('2006-04-05', 'BUY', 'MSOFT', 1000, 72.00),
('2006-04-06', 'SELL', 'IBM', 500, 53.00),
]:
c.execute('insert into stocks values (?,?,?,?,?)', t)
Le problème est que je ne veux pas exécuter la requête, je veux juste la formater et obtenir la requête sous forme de chaîne. Je suppose que je pourrais échapper aux choses moi-même, mais ce n'est pas une solution très élégante. Il doit y avoir un moyen d'obtenir les requêtes formatées sans avoir à se connecter à une base de données et à les exécuter.
(Le contexte est que j'écris un filtre qui prépare une série d'instructions SQL à partir de l'entrée, mais je ne veux pas les exécuter sur une base de données spécifique, juste les sauvegarder pour plus tard).