首页 > 代码库 > flask_sqlalchemy 乱码问题
flask_sqlalchemy 乱码问题
简言之, /etc/my.conf
default_character_set=utf8 配置成了 default_character_set=utf-8
继而 sqlalchemy 创建表使用的字符编码格式是 latin1, 如下
| log | CREATE TABLE `log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `record_id` int(11) DEFAULT NULL, `command` varchar(50) DEFAULT NULL, `sn` varchar(50) DEFAULT NULL, `hostname` varchar(100) DEFAULT NULL, `idc` varchar(50) DEFAULT NULL, `ip` varchar(50) DEFAULT NULL, `iloip` varchar(50) DEFAULT NULL, `result` text, `req_time` datetime DEFAULT NULL, `resp_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `record_id` (`record_id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 |
所以即使创建引擎时设置了character 为 utf8, 存储是也是乱码, 问题还是出在 mysql server 的配置.
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://work:123456@localhost:3306/work?charset=utf8"
另外还要把已经建立的 database 的 character 也改成 utf8: alter database clubot character set utf8;
删掉了已有的表, 新建后 OK.
flask_sqlalchemy 乱码问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。