Puisque vous utilisez Python 2.7, vous devez spécifier que votre chaîne contient de l'unicode.
>>> db.session.add(Users(u'ä'))
Vous pouvez également utiliser une future importation pour traiter toutes les chaînes comme Unicode.
from __future__ import unicode_literals
Vous pouvez également mettre à jour votre version de Python. 2.7 est la dernière version à traiter les chaînes comme des octets plutôt que comme Unicode.
Modifier
Vous devrez également mettre à jour votre __repr__
afin qu'il gère correctement l'unicode.
def __repr__(self):
return self.name.decode('utf-8')
ou quel que soit l'encodage que vous souhaitez utiliser.
En général, vous devrez vous assurer que vous gérez l'encodage et le décodage vers unicode. Je ne saurais trop vous inciter à envisager d'utiliser une version plus récente de Python. L'un des changements les plus importants de Python 3 résout ce problème.