Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Flask_SQLAlchemy, MySQL, armazena caracteres suecos å, ä, ö?


Como você está usando o Python 2.7, você precisa especificar que sua string contém unicode.
>>> db.session.add(Users(u'ä'))

Você também pode usar uma importação futura para tratar todas as strings como unicode.
from __future__ import unicode_literals

Alternativamente, você pode atualizar sua versão do Python. 2.7 é a última versão a tratar strings como bytes em vez de unicode.

Editar

Você também precisará atualizar seu __repr__ para que ele manipule corretamente o unicode.
def __repr__(self):
    return self.name.decode('utf-8')

ou qualquer codificação que você queira usar.

Em geral, você precisará certificar-se de lidar com a codificação e a decodificação para unicode. Eu não posso exortá-lo o suficiente para considerar o uso de uma versão mais recente do Python. Uma das maiores mudanças no Python 3 aborda exatamente esse problema.