Тъй като използвате Python 2.7, трябва да посочите, че низът ви съдържа unicode.
>>> db.session.add(Users(u'ä'))
Можете също да използвате бъдещ импорт, за да третирате всички низове като unicode.
from __future__ import unicode_literals
Като алтернатива можете да надстроите своята версия на Python. 2.7 е последната версия, която третира низовете като байтове, а не като Unicode.
Редактиране
Ще трябва също да актуализирате своя __repr__
така че да обработва правилно Unicode.
def __repr__(self):
return self.name.decode('utf-8')
или каквото и кодиране, което искате да използвате.
Като цяло ще трябва да се уверите, че обработвате кодиране от и декодиране към unicode. Не мога да ви настоя достатъчно да обмислите използването на по-нова версия на Python. Една от най-големите промени в Python 3 адресира точно този проблем.