Ambos mv
y ml
no serán reconocidos, ya que no los ha definido como variables.
El segundo argumento de execute
declaración es un diccionario, y todos los elementos de su consulta simple "UPDATE client SET musicVol = :mv , messageVol = :ml"
escapados con dos puntos se buscan en las claves de este diccionario. El execute
el método no encontró una clave 'mv'
ni 'ml'
en este diccionario, por lo tanto, se genera un error.
Esta es la versión correcta:
db.my_session.execute(
"UPDATE client SET musicVol = :mv, messageVol = :ml",
{'mv': music_volume, 'ml': message_volume}
)