Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sqlalchemy, requête brute et paramètres

Les deux mv et ml ne seront pas reconnus, car vous ne les avez pas définis comme variables.

Le deuxième argument de execute instruction est un dictionnaire, et tous les éléments de votre requête simple "UPDATE client SET musicVol = :mv , messageVol = :ml" échappés avec deux-points sont recherchés dans les clés de ce dictionnaire. Le execute la méthode n'a pas trouvé de clé 'mv' ni 'ml' dans ce dictionnaire, une erreur est donc levée.

C'est la bonne version :

db.my_session.execute(
    "UPDATE client SET musicVol = :mv, messageVol = :ml",
    {'mv': music_volume, 'ml': message_volume}
)