Dato che stai usando Python 2.7, devi specificare che la tua stringa contiene unicode.
>>> db.session.add(Users(u'ä'))
Puoi anche utilizzare un'importazione futura per trattare tutte le stringhe come unicode.
from __future__ import unicode_literals
In alternativa puoi aggiornare la tua versione di Python. 2.7 è l'ultima versione a trattare le stringhe come byte anziché come unicode.
Modifica
Dovrai anche aggiornare il tuo __repr__
in modo che gestisca correttamente unicode.
def __repr__(self):
return self.name.decode('utf-8')
o qualsiasi codifica tu voglia usare.
In generale, dovrai assicurarti di gestire la codifica e la decodifica in unicode. Non posso esortarti abbastanza a considerare l'utilizzo di una versione più recente di Python. Uno dei più grandi cambiamenti in Python 3 risolve proprio questo problema.