Python 2.7を使用しているため、文字列にUnicodeが含まれていることを指定する必要があります。
>>> db.session.add(Users(u'ä'))
将来のインポートを使用して、すべての文字列をユニコードとして扱うこともできます。
from __future__ import unicode_literals
または、Pythonのバージョンをアップグレードすることもできます。 2.7は、文字列をUnicodeではなくバイトとして扱う最後のバージョンです。
編集
__repr__
も更新する必要があります Unicodeを適切に処理できるようにします。
def __repr__(self):
return self.name.decode('utf-8')
または使用したいエンコーディング。
一般に、Unicodeからのエンコードとユニコードへのデコードを処理することを確認する必要があります。より新しいバージョンのPythonの使用を検討することをお勧めすることはできません。 Python 3の最大の変更点の1つは、まさにこの問題に対処しています。