zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    [比赛|考试]9.21上午考试
    给花_Q
    [比赛|考试] 9.17下午考试
    [比赛|考试]nowcoder NOIP提高组组第二场
    图论
    生成函数
    P4197 Peaks
    3942: [Usaco2015 Feb]Censoring
    P2245 星际导航
    P3565 [POI2014]HOT-Hotels
  • 原文地址:https://www.cnblogs.com/senjougahara/p/6185400.html
Copyright © 2011-2022 走看看