Ambos
mv
e ml
não serão reconhecidos, pois você não os definiu como variáveis. O segundo argumento de
execute
declaração é um dicionário e todos os elementos da sua consulta simples "UPDATE client SET musicVol = :mv , messageVol = :ml"
escapados com dois pontos estão sendo procurados nas chaves deste dicionário. O execute
método não encontrou uma chave 'mv'
nem 'ml'
neste dicionário, portanto, um erro é gerado. Esta é a versão correta:
db.my_session.execute(
"UPDATE client SET musicVol = :mv, messageVol = :ml",
{'mv': music_volume, 'ml': message_volume}
)