Entrambi mv
e ml
non verranno riconosciuti, poiché non li hai definiti come variabili.
Il secondo argomento di execute
istruzione è un dizionario e tutti gli elementi della tua semplice query "UPDATE client SET musicVol = :mv , messageVol = :ml"
escape con due punti vengono cercati nelle chiavi di questo dizionario. Il execute
il metodo non ha trovato una chiave 'mv'
né 'ml'
in questo dizionario, quindi, viene generato un errore.
Questa è la versione corretta:
db.my_session.execute(
"UPDATE client SET musicVol = :mv, messageVol = :ml",
{'mv': music_volume, 'ml': message_volume}
)