Aangezien je Python 2.7 gebruikt, moet je specificeren dat je string unicode bevat.
>>> db.session.add(Users(u'ä'))
U kunt ook een toekomstige import gebruiken om alle tekenreeksen als unicode te behandelen.
from __future__ import unicode_literals
Als alternatief kunt u uw versie van Python upgraden. 2.7 is de laatste versie die strings als bytes behandelt in plaats van als unicode.
Bewerken
Je moet ook je __repr__
. updaten zodat het op de juiste manier met Unicode omgaat.
def __repr__(self):
return self.name.decode('utf-8')
of welke codering u ook wilt gebruiken.
Over het algemeen moet u ervoor zorgen dat u de codering van en decodering naar unicode afhandelt. Ik kan je niet genoeg aansporen om te overwegen een recentere versie van Python te gebruiken. Een van de grootste veranderingen in Python 3 lost dit probleem op.