Protože používáte Python 2.7, musíte určit, že váš řetězec obsahuje unicode.
>>> db.session.add(Users(u'ä'))
Můžete také použít budoucí import, který bude všechny řetězce považovat za unicode.
from __future__ import unicode_literals
Případně můžete upgradovat svou verzi Pythonu. 2.7 je poslední verze, která zachází s řetězci jako s bajty, nikoli s unicode.
Upravit
Budete také muset aktualizovat svůj __repr__
aby správně zpracovával unicode.
def __repr__(self):
return self.name.decode('utf-8')
nebo jakékoli kódování, které chcete použít.
Obecně se musíte ujistit, že zvládnete kódování z a dekódování do unicode. Nemohu vás dostatečně vyzvat, abyste zvážili použití novější verze Pythonu. Jedna z největších změn v Pythonu 3 řeší právě tento problém.