Karena Anda menggunakan Python 2.7, Anda perlu menentukan bahwa string Anda berisi unicode.
>>> db.session.add(Users(u'ä'))
Anda juga dapat menggunakan impor mendatang untuk memperlakukan semua string sebagai unicode.
from __future__ import unicode_literals
Atau Anda dapat meningkatkan versi Python Anda. 2.7 adalah versi terakhir yang memperlakukan string sebagai byte daripada unicode.
Sunting
Anda juga harus memperbarui __repr__
sehingga menangani unicode dengan benar.
def __repr__(self):
return self.name.decode('utf-8')
atau pengkodean apa pun yang ingin Anda gunakan.
Secara umum, Anda harus memastikan bahwa Anda menangani encoding dari dan decoding ke unicode. Saya tidak bisa cukup mendorong Anda untuk mempertimbangkan menggunakan versi Python yang lebih baru. Salah satu perubahan terbesar dalam Python 3 mengatasi masalah ini.