La Substitution de Variable en Python

Alors je travaille avec Web.py et j'ai code suivant:

check = db.select('querycode', where='id=$id', vars=locals())[0]

Qui fonctionne très bien, il remplace $id avec la variable. Mais dans cette ligne il ne fonctionne pas:

web.sendmail('[email protected]', "[email protected]", 'Subject', 'Hello $name')

Que dois-je mal et comment cela pourrait-il fonctionner. Aussi ai-je eu le concept: Un signe $remplace la variable?

Le vars=locals() bits est une bonne indication de ce qui se passe dans le premier exemple est fait à l'intérieur db.select plutôt que Python transformer les cordes avant de les transmettre. Dans ce cas, il est fait par la base de données, pour des raisons de sécurité - il aide à protéger contre le Injection SQL - et cette caractéristique en fait pas être mis en œuvre de façon sécuritaire à l'Python (niveau de la sécurité repose sur le fait de donner la db quelque chose de plus structuré qu'une longue chaîne de caractères).

OriginalL'auteur yrk | 2014-06-27