Mysql
 sql >> Base de données >  >> RDS >> Mysql

Flask_SQLAlchemy, MySQL, stocke les caractères suédois å, ä, ö ?

Puisque vous utilisez Python 2.7, vous devez spécifier que votre chaîne contient de l'unicode.

>>> db.session.add(Users(u'ä'))

Vous pouvez également utiliser une future importation pour traiter toutes les chaînes comme Unicode.

from __future__ import unicode_literals

Vous pouvez également mettre à jour votre version de Python. 2.7 est la dernière version à traiter les chaînes comme des octets plutôt que comme Unicode.

Modifier

Vous devrez également mettre à jour votre __repr__ afin qu'il gère correctement l'unicode.

def __repr__(self):
    return self.name.decode('utf-8')

ou quel que soit l'encodage que vous souhaitez utiliser.

En général, vous devrez vous assurer que vous gérez l'encodage et le décodage vers unicode. Je ne saurais trop vous inciter à envisager d'utiliser une version plus récente de Python. L'un des changements les plus importants de Python 3 résout ce problème.