flask + sqlalchemy 存储emoji

最近在用flask写一个web应用,需要存储用户发表的内容,可能含有 emoji 等内容,但是在存储的时候总是报错 (_mysql_exceptions.OperationalError) (1366, "Incorrect string value: '\\xF0\\x9F\\x98\\xB2' for column 'content' at row 1"),一直以为问题出在数据库端,可是数据库端全部更改为 utf8mb4还是报错。终于通过查资料发现问题是在 flask-sqlalchemy 默认的字符集设置是不支持 emoji 的 utf8,解决如下:
SQLALCHEMY_DATABASE_URI = '数据库连接配置?charset=utf8mb4'  在数据库连接后指明编码为utf8mb4
ps: 我的配置是通过一个config类来实现的,参考自己的配置,改好数据编码后,在数据库连接URI后 添加 ?charset=utf8mb4 即可,如:
app.config['SQLALCHEMY_DATABASE_URI'] = '数据库连接配置?charset=utf8mb4'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容